60c0604052600a805461ffff19169055670520437bee27ba00600b8190556200002a905f1962000360565b62000037905f1962000380565b600c5560408051808201909152600e81526d52796f7368692046696e616e636560901b6020820152600f906200006e908262000446565b5060408051808201909152600381526252465960e81b602082015260109062000098908262000446565b506011805460ff19166009179055600560128190556013819055601455600860158190556016556017805461ff001916610100179055670520437bee27ba006018819055601955348015620000eb575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600c54335f9081526003602090815260409182902092909255805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d92839263c45a015592600480830193928290030181865afa15801562000190573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001b691906200050e565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000202573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200022891906200050e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000273573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200029991906200050e565b6001600160a01b0390811660a0528116608052600160065f620002c35f546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081015f908120805494151560ff1995861617905530815260069092529020805490911660011790556200030a3390565b6001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b546040516200035191815260200190565b60405180910390a3506200053d565b5f826200037b57634e487b7160e01b5f52601260045260245ffd5b500690565b81810381811115620003a057634e487b7160e01b5f52601160045260245ffd5b92915050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620003cf57607f821691505b602082108103620003ee57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000441575f81815260208120601f850160051c810160208610156200041c5750805b601f850160051c820191505b818110156200043d5782815560010162000428565b5050505b505050565b81516001600160401b03811115620004625762000462620003a6565b6200047a81620004738454620003ba565b84620003f4565b602080601f831160018114620004b0575f8415620004985750858301515b5f19600386901b1c1916600185901b1785556200043d565b5f85815260208120601f198616915b82811015620004e057888601518255948401946001909101908401620004bf565b5085821015620004fe57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f602082840312156200051f575f80fd5b81516001600160a01b038116811462000536575f80fd5b9392505050565b60805160a051613187620005895f395f81816105ff0152611e6a01525f81816103e3015281816126980152818161274f0152818161278b01528181612875015261289c01526131875ff3fe608060405260043610610310575f3560e01c80635d098b38116101a3578063a457c2d7116100f2578063d4a3883f11610092578063dd62ed3e1161006d578063dd62ed3e1461092c578063ea2f0b3714610970578063ec28438a1461098f578063f2fde38b146109ae575f80fd5b8063d4a3883f146108d9578063da6fa55c146108f8578063dd4670641461090d575f80fd5b8063a9059cbb116100cd578063a9059cbb14610872578063b6c5232414610891578063c49b9a80146108a5578063d12a7688146108c4575f80fd5b8063a457c2d71461082b578063a63342311461084a578063a69df4b51461085e575f80fd5b8063764d72bf1161015d5780638ba4cc3c116101385780638ba4cc3c146107bd5780638da5cb5b146107dc5780638ee88c53146107f857806395d89b4114610817575f80fd5b8063764d72bf146107525780637d1db4a51461077157806388f8202014610786575f80fd5b80635d098b381461069557806360d48489146106b45780636bc87c3a146106eb57806370a0823114610700578063715018a61461071f57806375f0a87414610733575f80fd5b80633685d4191161025f5780634549b0391161021957806349bd5a5e116101f457806349bd5a5e146105ee5780634a74bb021461062157806352390c021461063f5780635342acb41461065e575f80fd5b80634549b0391461059c578063457c194c146105bb57806348c54b9d146105da575f80fd5b80633685d419146104ec578063395093511461050b5780633ae7dc201461052a5780633b124fe7146105495780633bd5d1731461055e578063437823ec1461057d575f80fd5b806318160ddd116102ca5780632a360631116102a55780632a3606311461046f5780632d8381191461048e5780632f05205c146104ad578063313ce567146104cb575f80fd5b806318160ddd1461041d57806323b872dd1461043157806329e04b4a14610450575f80fd5b80630305caff1461031b578063061c82d01461033c57806306fdde031461035b578063095ea7b31461038557806313114a9d146103b45780631694505e146103d2575f80fd5b3661031757005b5f80fd5b348015610326575f80fd5b5061033a610335366004612cca565b6109cd565b005b348015610347575f80fd5b5061033a610356366004612ce5565b610a1f565b348015610366575f80fd5b5061036f610a9d565b60405161037c9190612cfc565b60405180910390f35b348015610390575f80fd5b506103a461039f366004612d47565b610b2d565b604051901515815260200161037c565b3480156103bf575f80fd5b50600d545b60405190815260200161037c565b3480156103dd575f80fd5b506104057f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161037c565b348015610428575f80fd5b50600b546103c4565b34801561043c575f80fd5b506103a461044b366004612d71565b610b43565b34801561045b575f80fd5b5061033a61046a366004612ce5565b610baa565b34801561047a575f80fd5b5061033a610489366004612cca565b610c57565b348015610499575f80fd5b506103c46104a8366004612ce5565b610ca3565b3480156104b8575f80fd5b50600a546103a490610100900460ff1681565b3480156104d6575f80fd5b5060115460405160ff909116815260200161037c565b3480156104f7575f80fd5b5061033a610506366004612cca565b610d25565b348015610516575f80fd5b506103a4610525366004612d47565b610ed3565b348015610535575f80fd5b5061033a610544366004612daf565b610f08565b348015610554575f80fd5b506103c460125481565b348015610569575f80fd5b5061033a610578366004612ce5565b611012565b348015610588575f80fd5b5061033a610597366004612cca565b6110f8565b3480156105a7575f80fd5b506103c46105b6366004612df3565b611144565b3480156105c6575f80fd5b5061033a6105d5366004612ce5565b6111ce565b3480156105e5575f80fd5b5061033a611267565b3480156105f9575f80fd5b506104057f000000000000000000000000000000000000000000000000000000000000000081565b34801561062c575f80fd5b506017546103a490610100900460ff1681565b34801561064a575f80fd5b5061033a610659366004612cca565b6112c9565b348015610669575f80fd5b506103a4610678366004612cca565b6001600160a01b03165f9081526006602052604090205460ff1690565b3480156106a0575f80fd5b5061033a6106af366004612cca565b611416565b3480156106bf575f80fd5b506103a46106ce366004612cca565b6001600160a01b03165f9081526009602052604090205460ff1690565b3480156106f6575f80fd5b506103c460155481565b34801561070b575f80fd5b506103c461071a366004612cca565b611461565b34801561072a575f80fd5b5061033a6114bd565b34801561073e575f80fd5b50600e54610405906001600160a01b031681565b34801561075d575f80fd5b5061033a61076c366004612cca565b61151b565b34801561077c575f80fd5b506103c460185481565b348015610791575f80fd5b506103a46107a0366004612cca565b6001600160a01b03165f9081526007602052604090205460ff1690565b3480156107c8575f80fd5b5061033a6107d7366004612d47565b611576565b3480156107e7575f80fd5b505f546001600160a01b0316610405565b348015610803575f80fd5b5061033a610812366004612ce5565b6115d0565b348015610822575f80fd5b5061036f6115fe565b348015610836575f80fd5b506103a4610845366004612d47565b61160d565b348015610855575f80fd5b5061033a61165a565b348015610869575f80fd5b5061033a611694565b34801561087d575f80fd5b506103a461088c366004612d47565b611797565b34801561089c575f80fd5b506002546103c4565b3480156108b0575f80fd5b5061033a6108bf366004612e16565b6117a3565b3480156108cf575f80fd5b506103c460195481565b3480156108e4575f80fd5b5061033a6108f3366004612e79565b611820565b348015610903575f80fd5b506103c460145481565b348015610918575f80fd5b5061033a610927366004612ce5565b611911565b348015610937575f80fd5b506103c4610946366004612daf565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b34801561097b575f80fd5b5061033a61098a366004612cca565b611992565b34801561099a575f80fd5b5061033a6109a9366004612ce5565b6119db565b3480156109b9575f80fd5b5061033a6109c8366004612cca565b611a80565b5f546001600160a01b031633146109ff5760405162461bcd60e51b81526004016109f690612ee0565b60405180910390fd5b6001600160a01b03165f908152600960205260409020805460ff19169055565b5f546001600160a01b03163314610a485760405162461bcd60e51b81526004016109f690612ee0565b600a8110610a985760405162461bcd60e51b815260206004820152601f60248201527f546178206665652063616e6e6f74206265206d6f7265207468616e203130250060448201526064016109f6565b601255565b6060600f8054610aac90612f15565b80601f0160208091040260200160405190810160405280929190818152602001828054610ad890612f15565b8015610b235780601f10610afa57610100808354040283529160200191610b23565b820191905f5260205f20905b815481529060010190602001808311610b0657829003601f168201915b5050505050905090565b5f610b39338484611b54565b5060015b92915050565b5f610b4f848484611c77565b610ba08433610b9b856040518060600160405280602881526020016130e5602891396001600160a01b038a165f9081526005602090815260408083203384529091529020549190611f21565b611b54565b5060019392505050565b5f546001600160a01b03163314610bd35760405162461bcd60e51b81526004016109f690612ee0565b63041cdb408111610c435760405162461bcd60e51b815260206004820152603460248201527f53776170205468726573686f6c6420416d6f756e742063616e6e6f74206265206044820152733632b9b9903a3430b7101b1c9026b4b63634b7b760611b60648201526084016109f6565b610c5181633b9aca00612f61565b60195550565b5f546001600160a01b03163314610c805760405162461bcd60e51b81526004016109f690612ee0565b6001600160a01b03165f908152600960205260409020805460ff19166001179055565b5f600c54821115610d095760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016109f6565b5f610d12611f59565b9050610d1e8382611f7a565b9392505050565b5f546001600160a01b03163314610d4e5760405162461bcd60e51b81526004016109f690612ee0565b6001600160a01b0381165f9081526007602052604090205460ff16610db55760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016109f6565b5f5b600854811015610ecf57816001600160a01b031660088281548110610dde57610dde612f78565b5f918252602090912001546001600160a01b031603610ebd5760088054610e0790600190612f8c565b81548110610e1757610e17612f78565b5f91825260209091200154600880546001600160a01b039092169183908110610e4257610e42612f78565b5f91825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600482526040808220829055600790925220805460ff191690556008805480610e9957610e99612f9f565b5f8281526020902081015f1990810180546001600160a01b03191690550190555050565b80610ec781612fb3565b915050610db7565b5050565b335f8181526005602090815260408083206001600160a01b03871684529091528120549091610b39918590610b9b9086611fbb565b5f546001600160a01b03163314610f315760405162461bcd60e51b81526004016109f690612ee0565b6040516370a0823160e01b81523060048201526001600160a01b0383169063a9059cbb90839083906370a0823190602401602060405180830381865afa158015610f7d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fa19190612fcb565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015610fe9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061100d9190612fe2565b505050565b335f8181526007602052604090205460ff16156110865760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084016109f6565b5f61109083612019565b505050506001600160a01b0384165f908152600360205260409020549192506110bb91905082612061565b6001600160a01b0383165f90815260036020526040902055600c546110e09082612061565b600c55600d546110f09084611fbb565b600d55505050565b5f546001600160a01b031633146111215760405162461bcd60e51b81526004016109f690612ee0565b6001600160a01b03165f908152600660205260409020805460ff19166001179055565b5f600b548311156111975760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016109f6565b816111b5575f6111a684612019565b50939550610b3d945050505050565b5f6111bf84612019565b50929550610b3d945050505050565b5f546001600160a01b031633146111f75760405162461bcd60e51b81526004016109f690612ee0565b603281106112625760405162461bcd60e51b815260206004820152603260248201527f4d61726b6574696e67206665652063616e6e6f74206265206d6f7265207468616044820152716e20353025206f66206c697175696469747960701b60648201526084016109f6565b601455565b5f546001600160a01b031633146112905760405162461bcd60e51b81526004016109f690612ee0565b600e546040516001600160a01b03909116904780156108fc02915f818181858888f193505050501580156112c6573d5f803e3d5ffd5b50565b5f546001600160a01b031633146112f25760405162461bcd60e51b81526004016109f690612ee0565b6001600160a01b0381165f9081526007602052604090205460ff161561135a5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016109f6565b6001600160a01b0381165f90815260036020526040902054156113b1576001600160a01b0381165f9081526003602052604090205461139890610ca3565b6001600160a01b0382165f908152600460205260409020555b6001600160a01b03165f818152600760205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b5f546001600160a01b0316331461143f5760405162461bcd60e51b81526004016109f690612ee0565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0381165f9081526007602052604081205460ff161561149c57506001600160a01b03165f9081526004602052604090205490565b6001600160a01b0382165f90815260036020526040902054610b3d90610ca3565b5f546001600160a01b031633146114e65760405162461bcd60e51b81526004016109f690612ee0565b5f80546040516001600160a01b03909116905f8051602061310d833981519152908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146115445760405162461bcd60e51b81526004016109f690612ee0565b6040516001600160a01b038216904780156108fc02915f818181858888f19350505050158015610ecf573d5f803e3d5ffd5b5f546001600160a01b0316331461159f5760405162461bcd60e51b81526004016109f690612ee0565b6115a76120a2565b6115bf33836115ba84633b9aca00612f61565b611c77565b610ecf601354601255601654601555565b5f546001600160a01b031633146115f95760405162461bcd60e51b81526004016109f690612ee0565b601555565b606060108054610aac90612f15565b5f610b393384610b9b8560405180606001604052806025815260200161312d60259139335f9081526005602090815260408083206001600160a01b038d1684529091529020549190611f21565b5f546001600160a01b031633146116835760405162461bcd60e51b81526004016109f690612ee0565b600a805461ff001916610100179055565b6001546001600160a01b031633146116fa5760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b60648201526084016109f6565b600254421161174b5760405162461bcd60e51b815260206004820152601f60248201527f436f6e7472616374206973206c6f636b656420756e74696c203720646179730060448201526064016109f6565b6001545f80546040516001600160a01b0393841693909116915f8051602061310d83398151915291a36001545f80546001600160a01b0319166001600160a01b03909216919091179055565b5f610b39338484611c77565b5f546001600160a01b031633146117cc5760405162461bcd60e51b81526004016109f690612ee0565b601780548215156101000261ff00199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061181590831515815260200190565b60405180910390a150565b5f546001600160a01b031633146118495760405162461bcd60e51b81526004016109f690612ee0565b5f8382146118995760405162461bcd60e51b815260206004820152601760248201527f6d757374206265207468652073616d65206c656e67746800000000000000000060448201526064016109f6565b8381101561190a576118f88585838181106118b6576118b6612f78565b90506020020160208101906118cb9190612cca565b8484848181106118dd576118dd612f78565b90506020020135633b9aca006118f39190612f61565b6120cf565b611903600182612ffd565b9050611899565b5050505050565b5f546001600160a01b0316331461193a5760405162461bcd60e51b81526004016109f690612ee0565b5f8054600180546001600160a01b03199081166001600160a01b038416179091551690556119688142612ffd565b6002555f80546040516001600160a01b03909116905f8051602061310d833981519152908390a350565b5f546001600160a01b031633146119bb5760405162461bcd60e51b81526004016109f690612ee0565b6001600160a01b03165f908152600660205260409020805460ff19169055565b5f546001600160a01b03163314611a045760405162461bcd60e51b81526004016109f690612ee0565b63041cdb408111611a6c5760405162461bcd60e51b815260206004820152602c60248201527f4d617820547820416d6f756e742063616e6e6f74206265206c6573732074686160448201526b37101b1c9026b4b63634b7b760a11b60648201526084016109f6565b611a7a81633b9aca00612f61565b60185550565b5f546001600160a01b03163314611aa95760405162461bcd60e51b81526004016109f690612ee0565b6001600160a01b038116611b0e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109f6565b5f80546040516001600160a01b03808516939216915f8051602061310d83398151915291a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316611bb65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109f6565b6001600160a01b038216611c175760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109f6565b6001600160a01b038381165f8181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611cdb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109f6565b6001600160a01b038216611d3d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109f6565b5f8111611d9e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016109f6565b5f546001600160a01b03848116911614801590611dc857505f546001600160a01b03838116911614155b15611e3057601854811115611e305760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016109f6565b5f611e3a30611461565b90506018548110611e4a57506018545b60195481108015908190611e61575060175460ff16155b8015611e9f57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614155b8015611eb25750601754610100900460ff165b15611ec5576019549150611ec5826120e2565b6001600160a01b0385165f9081526006602052604090205460019060ff1680611f0557506001600160a01b0385165f9081526006602052604090205460ff165b15611f0d57505f5b611f19868686846121e4565b505050505050565b5f8184841115611f445760405162461bcd60e51b81526004016109f69190612cfc565b505f611f508486612f8c565b95945050505050565b5f805f611f64612414565b9092509050611f738282611f7a565b9250505090565b5f610d1e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061258d565b5f80611fc78385612ffd565b905083811015610d1e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109f6565b5f805f805f805f805f61202b8a6125b9565b9250925092505f805f6120478d8686612042611f59565b6125f7565b919f909e50909c50959a5093985091965092945050505050565b5f610d1e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f21565b6012541580156120b25750601554155b156120b957565b60128054601355601580546016555f9182905555565b6120d76120a2565b6115bf338383611c77565b6017805460ff191660011790555f6120fb826002611f7a565b90505f6121088383612061565b90504761211483612643565b5f61211f4783612061565b90505f612142606461213c601454856127f190919063ffffffff16565b90611f7a565b600e546040519192506001600160a01b03169082156108fc029083905f818181858888f1935050505015801561217a573d5f803e3d5ffd5b506121858183612f8c565b9150612191848361286f565b60408051868152602081018490529081018590527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a150506017805460ff1916905550505050565b600a54610100900460ff1661220b575f546001600160a01b0385811691161461220b575f80fd5b6001600160a01b0384165f9081526009602052604090205460ff168061224857506001600160a01b0383165f9081526009602052604090205460ff165b1561229f57600a5460ff1661229f5760405162461bcd60e51b815260206004820152601b60248201527f626f7473206172656e7420616c6c6f77656420746f207472616465000000000060448201526064016109f6565b806122ac576122ac6120a2565b6001600160a01b0384165f9081526007602052604090205460ff1680156122eb57506001600160a01b0383165f9081526007602052604090205460ff16155b15612300576122fb84848461296a565b6123f8565b6001600160a01b0384165f9081526007602052604090205460ff1615801561233f57506001600160a01b0383165f9081526007602052604090205460ff165b1561234f576122fb848484612a89565b6001600160a01b0384165f9081526007602052604090205460ff1615801561238f57506001600160a01b0383165f9081526007602052604090205460ff16155b1561239f576122fb848484612b2c565b6001600160a01b0384165f9081526007602052604090205460ff1680156123dd57506001600160a01b0383165f9081526007602052604090205460ff165b156123ed576122fb848484612b6c565b6123f8848484612b2c565b8061240e5761240e601354601255601654601555565b50505050565b600c54600b545f918291825b60085481101561255d578260035f6008848154811061244157612441612f78565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205411806124a957508160045f6008848154811061248357612483612f78565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054115b156124bf57600c54600b54945094505050509091565b61250360035f600884815481106124d8576124d8612f78565b5f9182526020808320909101546001600160a01b031683528201929092526040019020548490612061565b925061254960045f6008848154811061251e5761251e612f78565b5f9182526020808320909101546001600160a01b031683528201929092526040019020548390612061565b91508061255581612fb3565b915050612420565b50600b54600c5461256d91611f7a565b82101561258457600c54600b549350935050509091565b90939092509050565b5f81836125ad5760405162461bcd60e51b81526004016109f69190612cfc565b505f611f508486613010565b5f805f806125c685612bda565b90505f6125d286612bf5565b90505f6125e9826125e38986612061565b90612061565b979296509094509092505050565b5f80808061260588866127f1565b90505f61261288876127f1565b90505f61261f88886127f1565b90505f612630826125e38686612061565b939b939a50919850919650505050505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061267657612676612f78565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126f2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612716919061302f565b8160018151811061272957612729612f78565b60200260200101906001600160a01b031690816001600160a01b031681525050612774307f000000000000000000000000000000000000000000000000000000000000000084611b54565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac947906127c89085905f9086903090429060040161304a565b5f604051808303815f87803b1580156127df575f80fd5b505af1158015611f19573d5f803e3d5ffd5b5f825f0361280057505f610b3d565b5f61280b8385612f61565b9050826128188583613010565b14610d1e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109f6565b61289a307f000000000000000000000000000000000000000000000000000000000000000084611b54565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d7198230855f806128df5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015612945573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061190a91906130b9565b5f805f805f8061297987612019565b6001600160a01b038f165f90815260046020526040902054959b509399509197509550935091506129aa9088612061565b6001600160a01b038a165f908152600460209081526040808320939093556003905220546129d89087612061565b6001600160a01b03808b165f9081526003602052604080822093909355908a1681522054612a069086611fbb565b6001600160a01b0389165f90815260036020526040902055612a2781612c10565b612a318483612c92565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612a7691815260200190565b60405180910390a3505050505050505050565b5f805f805f80612a9887612019565b6001600160a01b038f165f90815260036020526040902054959b50939950919750955093509150612ac99087612061565b6001600160a01b03808b165f90815260036020908152604080832094909455918b16815260049091522054612afe9084611fbb565b6001600160a01b0389165f90815260046020908152604080832093909355600390522054612a069086611fbb565b5f805f805f80612b3b87612019565b6001600160a01b038f165f90815260036020526040902054959b509399509197509550935091506129d89087612061565b5f805f805f80612b7b87612019565b6001600160a01b038f165f90815260046020526040902054959b50939950919750955093509150612bac9088612061565b6001600160a01b038a165f90815260046020908152604080832093909355600390522054612ac99087612061565b5f610b3d606461213c601254856127f190919063ffffffff16565b5f610b3d606461213c601554856127f190919063ffffffff16565b5f612c19611f59565b90505f612c2683836127f1565b305f90815260036020526040902054909150612c429082611fbb565b305f9081526003602090815260408083209390935560079052205460ff161561100d57305f90815260046020526040902054612c7e9084611fbb565b305f90815260046020526040902055505050565b600c54612c9f9083612061565b600c55600d54612caf9082611fbb565b600d555050565b6001600160a01b03811681146112c6575f80fd5b5f60208284031215612cda575f80fd5b8135610d1e81612cb6565b5f60208284031215612cf5575f80fd5b5035919050565b5f6020808352835180828501525f5b81811015612d2757858101830151858201604001528201612d0b565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215612d58575f80fd5b8235612d6381612cb6565b946020939093013593505050565b5f805f60608486031215612d83575f80fd5b8335612d8e81612cb6565b92506020840135612d9e81612cb6565b929592945050506040919091013590565b5f8060408385031215612dc0575f80fd5b8235612dcb81612cb6565b91506020830135612ddb81612cb6565b809150509250929050565b80151581146112c6575f80fd5b5f8060408385031215612e04575f80fd5b823591506020830135612ddb81612de6565b5f60208284031215612e26575f80fd5b8135610d1e81612de6565b5f8083601f840112612e41575f80fd5b50813567ffffffffffffffff811115612e58575f80fd5b6020830191508360208260051b8501011115612e72575f80fd5b9250929050565b5f805f8060408587031215612e8c575f80fd5b843567ffffffffffffffff80821115612ea3575f80fd5b612eaf88838901612e31565b90965094506020870135915080821115612ec7575f80fd5b50612ed487828801612e31565b95989497509550505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680612f2957607f821691505b602082108103612f4757634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610b3d57610b3d612f4d565b634e487b7160e01b5f52603260045260245ffd5b81810381811115610b3d57610b3d612f4d565b634e487b7160e01b5f52603160045260245ffd5b5f60018201612fc457612fc4612f4d565b5060010190565b5f60208284031215612fdb575f80fd5b5051919050565b5f60208284031215612ff2575f80fd5b8151610d1e81612de6565b80820180821115610b3d57610b3d612f4d565b5f8261302a57634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121561303f575f80fd5b8151610d1e81612cb6565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156130985784516001600160a01b031683529383019391830191600101613073565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f606084860312156130cb575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e045524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d241ff649547c5b4403b821070dc9d7f879ce8cbffa403d190338fde0a5f860b64736f6c63430008150033