0x60806040526008805462ffffff60b81b19166201010160b81b17905560c8600981905562000042306001600160a01b031660009081526020819052604090205490565b6200004e919062000ad1565b600a556200006f600c54600b54620004d560201b62001a4c1790919060201c565b600d55601c600e553480156200008457600080fd5b506040516200425e3803806200425e833981016040819052620000a791620009d9565b604080518082018252600a808252695472756d70476f6f736560b01b602080840182815285518087019096529285528401528151919291620000ec91600391620008f8565b50805162000102906004906020840190620008f8565b5050506000620001176200054560201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35062000199866200018560648a6200054960201b62001ab21790919060201c565b6200059360201b62001af41790919060201c565b620001a990633b9aca0062000af4565b601055620001ca856200018589606462000549602090811b62001ab217901c565b620001da90633b9aca0062000af4565b601155620001fb846200018589606462000549602090811b62001ab217901c565b6200020b90633b9aca0062000af4565b6012556200022787606462000549602090811b62001ab217901c565b6200023790633b9aca0062000af4565b600f55600b899055600c8890556200025c8989620004d5602090811b62001a4c17901c565b600d8190555060008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002a357600080fd5b505afa158015620002b8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002de9190620009bb565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200032757600080fd5b505afa1580156200033c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003629190620009bb565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015620003ab57600080fd5b505af1158015620003c0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e69190620009bb565b600880546001600160a01b038086166001600160a01b031992831617909255601a8054928416929091169190911790559050620004258160016200061a565b601b80546001600160a01b038681166001600160a01b031992831617909255601c80548884169216919091179055600554620004649116600162000705565b6200047130600162000705565b601b546200048a906001600160a01b0316600162000705565b6200049785600162000705565b620004c4620004ae6005546001600160a01b031690565b620004be8b633b9aca0062000af4565b620007c0565b505050505050505050505062000b69565b600080620004e4838562000ab6565b9050838110156200053c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064015b60405180910390fd5b90505b92915050565b3390565b60006200053c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620008bc60201b60201c565b600082620005a4575060006200053f565b6000620005b2838562000af4565b905082620005c1858362000ad1565b146200053c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840162000533565b6001600160a01b03821660009081526018602052604090205460ff1615158115151415620006b15760405162461bcd60e51b815260206004820152603f60248201527f546f6b656e3a204175746f6d61746564206d61726b6574206d616b657220706160448201527f697220697320616c72656164792073657420746f20746861742076616c756500606482015260840162000533565b6001600160a01b038216600081815260186020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6005546001600160a01b03163314620007615760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000533565b6001600160a01b038216600081815260176020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620008185760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000533565b6200083481600254620004d560201b62001a4c1790919060201c565b6002556001600160a01b038216600090815260208181526040909120546200086791839062001a4c620004d5821b17901c565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b60008183620008e05760405162461bcd60e51b815260040162000533919062000a5e565b506000620008ef848662000ad1565b95945050505050565b828054620009069062000b16565b90600052602060002090601f0160209004810192826200092a576000855562000975565b82601f106200094557805160ff191683800117855562000975565b8280016001018555821562000975579182015b828111156200097557825182559160200191906001019062000958565b506200098392915062000987565b5090565b5b8082111562000983576000815560010162000988565b80516001600160a01b0381168114620009b657600080fd5b919050565b600060208284031215620009ce57600080fd5b6200053c826200099e565b60008060008060008060008060006101208a8c031215620009f957600080fd5b8951985060208a0151975060408a0151965060608a0151955060808a0151945060a08a0151935062000a2e60c08b016200099e565b925062000a3e60e08b016200099e565b915062000a4f6101008b016200099e565b90509295985092959850929598565b600060208083528351808285015260005b8181101562000a8d5785810183015185820160400152820162000a6f565b8181111562000aa0576000604083870101525b50601f01601f1916929092016040019392505050565b6000821982111562000acc5762000acc62000b53565b500190565b60008262000aef57634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161562000b115762000b1162000b53565b500290565b600181811c9082168062000b2b57607f821691505b6020821081141562000b4d57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6136e58062000b796000396000f3fe6080604052600436106103855760003560e01c8063877f4de5116101d1578063bf56b37111610102578063dd62ed3e116100a0578063e6db992f1161006f578063e6db992f14610aae578063eb91d37e14610ac3578063f2fde38b14610ad8578063f8b3c23e14610af857600080fd5b8063dd62ed3e14610a1c578063ddbbf68314610a62578063e2f4560514610a82578063e6c75f7114610a9857600080fd5b8063ca02d791116100dc578063ca02d7911461094f578063cb0e55a81461096f578063da473fcd146109e6578063dd467064146109fc57600080fd5b8063bf56b371146108f9578063c02466681461090f578063c492f0461461092f57600080fd5b80639a7a23d61161016f578063a9059cbb11610149578063a9059cbb14610874578063b62496f514610894578063b6c52324146108c4578063b99d4839146108d957600080fd5b80639a7a23d6146108135780639ec5691d14610833578063a457c2d71461085457600080fd5b80638e989382116101ab5780638e989382146107a85780639283ee17146107c857806395d89b41146107e857806398118cb4146107fd57600080fd5b8063877f4de5146107545780638d8b4d50146107755780638da5cb5b1461078a57600080fd5b8063316601a7116102b65780635aa821a91161025457806370a082311161022357806370a08231146106df578063715018a6146106ff5780637290b621146107145780637316c2e91461073457600080fd5b80635aa821a9146106735780635d098b381461068957806365b8dbc0146106a95780636b67c4df146106c957600080fd5b8063455a439611610290578063455a4396146105da57806349bd5a5e146105fa5780634fbee1931461061a57806352f7c9881461065357600080fd5b8063316601a71461057957806331a0a88c1461059957806339509351146105ba57600080fd5b806318160ddd116103235780631fca803d116102fd5780631fca803d146104ed57806323b872dd1461051d578063264d26dd1461053d578063313ce5671461055d57600080fd5b806318160ddd146104875780631c15aa111461049c5780631cdd3be3146104bd57600080fd5b806306fdde031161035f57806306fdde03146103e7578063095ea7b31461040957806313114a9d146104395780631694505e1461044f57600080fd5b806301339c211461039157806301f59d16146103a857806302259e9e146103d157600080fd5b3661038c57005b600080fd5b34801561039d57600080fd5b506103a6610b19565b005b3480156103b457600080fd5b506103be600e5481565b6040519081526020015b60405180910390f35b3480156103dd57600080fd5b506103be60115481565b3480156103f357600080fd5b506103fc610b6f565b6040516103c89190613362565b34801561041557600080fd5b506104296104243660046130f3565b610c01565b60405190151581526020016103c8565b34801561044557600080fd5b506103be600d5481565b34801561045b57600080fd5b5060085461046f906001600160a01b031681565b6040516001600160a01b0390911681526020016103c8565b34801561049357600080fd5b506002546103be565b3480156104a857600080fd5b5060085461042990600160b81b900460ff1681565b3480156104c957600080fd5b506104296104d8366004613011565b60156020526000908152604090205460ff1681565b3480156104f957600080fd5b50610429610508366004613011565b60166020526000908152604090205460ff1681565b34801561052957600080fd5b50610429610538366004613084565b610c18565b34801561054957600080fd5b50601b5461046f906001600160a01b031681565b34801561056957600080fd5b50604051600981526020016103c8565b34801561058557600080fd5b506103a6610594366004613224565b610c81565b3480156105a557600080fd5b5060085461042990600160c81b900460ff1681565b3480156105c657600080fd5b506104296105d53660046130f3565b610cb0565b3480156105e657600080fd5b506103a66105f53660046130c5565b610ce6565b34801561060657600080fd5b50601a5461046f906001600160a01b031681565b34801561062657600080fd5b50610429610635366004613011565b6001600160a01b031660009081526017602052604090205460ff1690565b34801561065f57600080fd5b506103a661066e36600461328d565b610d3b565b34801561067f57600080fd5b506103be60105481565b34801561069557600080fd5b506103a66106a4366004613011565b610dca565b3480156106b557600080fd5b506103a66106c4366004613011565b610e16565b3480156106d557600080fd5b506103be600c5481565b3480156106eb57600080fd5b506103be6106fa366004613011565b6110b4565b34801561070b57600080fd5b506103a66110cf565b34801561072057600080fd5b506103a661072f3660046132af565b611146565b34801561074057600080fd5b506103a661074f3660046131a5565b6111a8565b34801561076057600080fd5b5060085461042990600160a81b900460ff1681565b34801561078157600080fd5b506103a66111f0565b34801561079657600080fd5b506005546001600160a01b031661046f565b3480156107b457600080fd5b506103a66107c336600461304b565b6112a7565b3480156107d457600080fd5b506103a66107e33660046130f3565b6113d7565b3480156107f457600080fd5b506103fc61141c565b34801561080957600080fd5b506103be600b5481565b34801561081f57600080fd5b506103a661082e3660046130c5565b61142b565b34801561083f57600080fd5b5060085461042990600160c01b900460ff1681565b34801561086057600080fd5b5061042961086f3660046130f3565b6114f8565b34801561088057600080fd5b5061042961088f3660046130f3565b611547565b3480156108a057600080fd5b506104296108af366004613011565b60186020526000908152604090205460ff1681565b3480156108d057600080fd5b506007546103be565b3480156108e557600080fd5b506103a66108f4366004613256565b611554565b34801561090557600080fd5b506103be60135481565b34801561091b57600080fd5b506103a661092a3660046130c5565b6115c3565b34801561093b57600080fd5b506103a661094a36600461311f565b61164c565b34801561095b57600080fd5b50601c5461046f906001600160a01b031681565b34801561097b57600080fd5b506109bc61098a366004613011565b601460205260009081526040902080546001820154600283015460038401546004909401549293919290919060ff1685565b6040805195865260208601949094529284019190915260608301521515608082015260a0016103c8565b3480156109f257600080fd5b506103be60095481565b348015610a0857600080fd5b506103a6610a17366004613224565b611728565b348015610a2857600080fd5b506103be610a3736600461304b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b348015610a6e57600080fd5b5061046f610a7d366004613224565b6117ad565b348015610a8e57600080fd5b506103be600a5481565b348015610aa457600080fd5b506103be60125481565b348015610aba57600080fd5b506103a66117d7565b348015610acf57600080fd5b506103be611883565b348015610ae457600080fd5b506103a6610af3366004613011565b611973565b348015610b0457600080fd5b5060085461042990600160b01b900460ff1681565b6005546001600160a01b03163314610b4c5760405162461bcd60e51b8152600401610b43906133fa565b60405180910390fd5b6008805460ff60b01b1916600160b01b179055610b6a42600a611a4c565b601355565b606060038054610b7e90613555565b80601f0160208091040260200160405190810160405280929190818152602001828054610baa90613555565b8015610bf75780601f10610bcc57610100808354040283529160200191610bf7565b820191906000526020600020905b815481529060010190602001808311610bda57829003601f168201915b5050505050905090565b6000610c0e338484611b73565b5060015b92915050565b6000610c25848484611c98565b610c778433610c7285604051806060016040528060288152602001613643602891396001600160a01b038a1660009081526001602090815260408083203384529091529020549190612711565b611b73565b5060019392505050565b6005546001600160a01b03163314610cab5760405162461bcd60e51b8152600401610b43906133fa565b600955565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610c0e918590610c729086611a4c565b6005546001600160a01b03163314610d105760405162461bcd60e51b8152600401610b43906133fa565b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610d655760405162461bcd60e51b8152600401610b43906133fa565b600b829055600c819055610d798282611a4c565b600d819055600b54600c546040805192835260208301919091528101919091527f9fef908e44cc0f51b9e9f7fd26bc506a50448657da0dc10a9661e37bc1c4a3929060600160405180910390a15050565b6005546001600160a01b03163314610df45760405162461bcd60e51b8152600401610b43906133fa565b601c80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610e405760405162461bcd60e51b8152600401610b43906133fa565b6008546001600160a01b0382811691161415610eb15760405162461bcd60e51b815260206004820152602a60248201527f546f6b656e3a2054686520726f7574657220616c7265616479206861732074686044820152696174206164647265737360b01b6064820152608401610b43565b6008546040516001600160a01b03918216918316907f8fc842bbd331dfa973645f4ed48b11683d501ebf1352708d77a5da2ab49a576e90600090a3600880546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b815290516000929163c45a0155916004808301926020929190829003018186803b158015610f4357600080fd5b505afa158015610f57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7b919061302e565b6001600160a01b031663c9c6539630600860009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610fd857600080fd5b505afa158015610fec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611010919061302e565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561105857600080fd5b505af115801561106c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611090919061302e565b601a80546001600160a01b0319166001600160a01b03929092169190911790555050565b6001600160a01b031660009081526020819052604090205490565b6005546001600160a01b031633146110f95760405162461bcd60e51b8152600401610b43906133fa565b600554600680546001600160a01b0319166001600160a01b0390921691821790556040516000919060008051602061366b833981519152908390a3600580546001600160a01b0319169055565b6005546001600160a01b031633146111705760405162461bcd60e51b8152600401610b43906133fa565b61117e83633b9aca0061351f565b60105561118f82633b9aca0061351f565b6011556111a081633b9aca0061351f565b601255505050565b6005546001600160a01b031633146111d25760405162461bcd60e51b8152600401610b43906133fa565b60088054911515600160a81b0260ff60a81b19909216919091179055565b6006546001600160a01b031633146112565760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b6064820152608401610b43565b6006546005546040516001600160a01b03928316929091169060008051602061366b83398151915290600090a3600654600580546001600160a01b0319166001600160a01b03909216919091179055565b6005546001600160a01b031633146112d15760405162461bcd60e51b8152600401610b43906133fa565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a082319060240160206040518083038186803b15801561131357600080fd5b505afa158015611327573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134b919061323d565b60405163a9059cbb60e01b81526001600160a01b038481166004830152602482018390529192509084169063a9059cbb90604401602060405180830381600087803b15801561139957600080fd5b505af11580156113ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113d191906131c2565b50505050565b6005546001600160a01b031633146114015760405162461bcd60e51b8152600401610b43906133fa565b6114188261141383633b9aca0061351f565b61274b565b5050565b606060048054610b7e90613555565b6005546001600160a01b031633146114555760405162461bcd60e51b8152600401610b43906133fa565b601a546001600160a01b03838116911614156114ee5760405162461bcd60e51b815260206004820152604c60248201527f546f6b656e3a205468652050616e63616b655377617020706169722063616e6e60448201527f6f742062652072656d6f7665642066726f6d206175746f6d617465644d61726b60648201526b65744d616b6572506169727360a01b608482015260a401610b43565b6114188282612755565b6000610c0e3384610c728560405180606001604052806025815260200161368b602591393360009081526001602090815260408083206001600160a01b038d1684529091529020549190612711565b6000610c0e338484611c98565b6005546001600160a01b0316331461157e5760405162461bcd60e51b8152600401610b43906133fa565b604183111561158c57600080fd5b6008805461ffff60b81b1916600160b81b9315159390930260ff60c01b191692909217600160c01b91151591909102179055600e55565b6005546001600160a01b031633146115ed5760405162461bcd60e51b8152600401610b43906133fa565b6001600160a01b038216600081815260176020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146116765760405162461bcd60e51b8152600401610b43906133fa565b60005b828110156116e7578160176000868685818110611698576116986135c1565b90506020020160208101906116ad9190613011565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806116df81613590565b915050611679565b507f7fdaf542373fa84f4ee8d662c642f44e4c2276a217d7d29e548b6eb29a233b3583838360405161171b93929190613309565b60405180910390a1505050565b6005546001600160a01b031633146117525760405162461bcd60e51b8152600401610b43906133fa565b60058054600680546001600160a01b03199081166001600160a01b0384161790915516905561178181426134e5565b6007556005546040516000916001600160a01b03169060008051602061366b833981519152908390a350565b601981815481106117bd57600080fd5b6000918252602090912001546001600160a01b0316905081565b6005546001600160a01b031633146118015760405162461bcd60e51b8152600401610b43906133fa565b60005b60195481101561188057600060198281548110611823576118236135c1565b60009182526020822001546001600160a01b03169150611842826110b4565b905061184e828261283e565b506001600160a01b03166000908152601660205260409020805460ff191690558061187881613590565b915050611804565b50565b601a5460408051630240bc6b60e21b815290516000926001600160a01b031691839182918491630902f1ac91600480820192606092909190829003018186803b1580156118cf57600080fd5b505afa1580156118e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061190791906131df565b506001600160701b0391821693501690508181111561192257905b80611930576000935061196d565b8161194182655af3107a400061351f565b1115611968576119618261195b83655af3107a400061351f565b90611ab2565b935061196d565b600093505b50505090565b6005546001600160a01b0316331461199d5760405162461bcd60e51b8152600401610b43906133fa565b6001600160a01b038116611a025760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b43565b6005546040516001600160a01b0380841692169060008051602061366b83398151915290600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b600080611a5983856134e5565b905083811015611aab5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b43565b9392505050565b6000611aab83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061294a565b600082611b0357506000610c12565b6000611b0f838561351f565b905082611b1c85836134fd565b14611aab5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b43565b6001600160a01b038316611bd55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b43565b6001600160a01b038216611c365760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b43565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316611cbe5760405162461bcd60e51b8152600401610b439061342f565b6001600160a01b038216611ce45760405162461bcd60e51b8152600401610b43906133b7565b6001600160a01b03821660009081526015602052604090205460ff16158015611d2657506001600160a01b03831660009081526015602052604090205460ff16155b611d8b5760405162461bcd60e51b815260206004820152603060248201527f596f75722061646472657373206f7220726563697069656e742061646472657360448201526f1cc81a5cc8189b1858dadb1a5cdd195960821b6064820152608401610b43565b80611da157611d9c83836000612978565b505050565b6000611dac306110b4565b90506000600a5482101590506000818015611dd15750600854600160a01b900460ff16155b8015611df657506001600160a01b03861660009081526018602052604090205460ff16155b8015611e1057506005546001600160a01b03878116911614155b8015611e2a57506005546001600160a01b03868116911614155b15611f18576008805460ff60a01b1916600160a01b179055600d54600c54600091611e5a9161195b908790611af4565b9050611e6581612a81565b601c54604080518381526001600160a01b0390921660208301527feafa9125fd4b0edd379b9ab67721e8f4eb26bc018c352092ccac54a89ac6fed7910160405180910390a16000611ec7600d5461195b600b5488611af490919063ffffffff16565b9050611ed281612ac3565b6040518181527f61d10b3f17a77466a4241488e37c886fa1637f9863ae76dd5076a80a932bc4eb9060200160405180910390a150506008805460ff60a01b191690555060015b6008546001600160a01b03871660009081526017602052604090205460ff600160a01b909204821615911680611f6657506001600160a01b03861660009081526017602052604090205460ff165b15611f6f575060005b80156126fd576001600160a01b03871660009081526018602052604090205460ff161561224957600854600160b01b900460ff16611fef5760405162461bcd60e51b815260206004820152601860248201527f546f6b656e2069736e2774206c61756e636865642079657400000000000000006044820152606401610b43565b6010548511156120525760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610b43565b6012548561205f886110b4565b61206991906134e5565b11156120c35760405162461bcd60e51b8152602060048201526024808201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6044820152633ab73a1760e11b6064820152608401610b43565b601354421180159081906120f057506001600160a01b03871660009081526016602052604090205460ff16155b1561214157601980546001810182556000919091527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c96950180546001600160a01b0319166001600160a01b0389161790555b600854600160a81b900460ff16801561217357506001600160a01b03871660009081526016602052604090205460ff16155b156121c457601980546001810182556000919091527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c96950180546001600160a01b0319166001600160a01b0389161790555b600854600160c01b900460ff16151560011415612202576121e58787612b4a565b6001600160a01b0388166000908152601460205260409020600201555b604080518781526001600160a01b03891660208201527f1df6c66a1a6eb6b0b6a23930c6ec94664e676e5d72f819a20a11e6c54540fa42910160405180910390a15061259d565b6001600160a01b03861660009081526018602052604090205460ff161561249e576001600160a01b03871660009081526016602052604090205460ff16156122c45760405162461bcd60e51b815260206004820152600e60248201526d2cb7ba9030b9329039b734b832b960911b6044820152606401610b43565b60115485111561233c5760405162461bcd60e51b815260206004820152603a60248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201527f206d617853656c6c5472616e73616374696f6e416d6f756e742e0000000000006064820152608401610b43565b600854600160c81b900460ff161515600114801561237657506001600160a01b03871660009081526014602052604090206004015460ff16155b15612424576000612386886110b4565b90506002811115612422578086111561239e57600080fd5b6001600160a01b038816600090815260146020526040812060030180548892906123c99084906134e5565b909155506123da9050816003611ab2565b6001600160a01b03891660009081526014602052604090206003015410612422576001600160a01b0388166000908152601460205260409020600401805460ff191660011790555b505b61243785612431896110b4565b90612bdb565b612458576001600160a01b0387166000908152601460205260408120600201555b604080518681526001600160a01b03891660208201527f845540a7f3f9afb8980bffef1e5a59039c43bbd45de62cc2ce5def5830465f04910160405180910390a161259d565b6001600160a01b03871660009081526017602052604090205460ff161580156124e057506001600160a01b03861660009081526017602052604090205460ff16155b1561259d57600854600160c01b900460ff16151560011415612523576125068686612b4a565b6001600160a01b0387166000908152601460205260409020600201555b61253085612431896110b4565b612551576001600160a01b0387166000908152601460205260408120600201555b604080516001600160a01b03808a168252881660208201529081018690527f38e8feed990acd7f5210170f614d354c7a0485670b9a787e9e00f8fca640d5749060600160405180910390a15b60006125b9606461195b600d5489611af490919063ffffffff16565b6001600160a01b03881660009081526018602052604090205490915060ff16156125fa576125ed606461195b886001611af4565b6125f790826134e5565b90505b600854600090600160b81b900460ff161515600114801561263457506001600160a01b03891660009081526017602052604090205460ff16155b801561265857506001600160a01b03881660009081526018602052604090205460ff165b156126d05760006001851515141561268b57600f54871161267a576001612688565b600f54612688908890611ab2565b90505b6001600160a01b038a166000908152601460205260409020600201546126b2908983612c1d565b91508282116126c25760006126cc565b6126cc838361353e565b9150505b6126e46126dd82846134e5565b8890612bdb565b96506126fa89306126f584866134e5565b612978565b50505b612708878787612978565b50505050505050565b600081848411156127355760405162461bcd60e51b8152600401610b439190613362565b506000612742848661353e565b95945050505050565b6114188282612cf2565b6001600160a01b03821660009081526018602052604090205460ff16151581151514156127ea5760405162461bcd60e51b815260206004820152603f60248201527f546f6b656e3a204175746f6d61746564206d61726b6574206d616b657220706160448201527f697220697320616c72656164792073657420746f20746861742076616c7565006064820152608401610b43565b6001600160a01b038216600081815260186020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b03821661289e5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610b43565b6128db816040518060600160405280602281526020016135fb602291396001600160a01b0385166000908152602081905260409020549190612711565b6001600160a01b0383166000908152602081905260409020556002546129019082612bdb565b6002556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a35050565b6000818361296b5760405162461bcd60e51b8152600401610b439190613362565b50600061274284866134fd565b6001600160a01b03831661299e5760405162461bcd60e51b8152600401610b439061342f565b6001600160a01b0382166129c45760405162461bcd60e51b8152600401610b43906133b7565b612a018160405180606001604052806026815260200161361d602691396001600160a01b0386166000908152602081905260409020549190612711565b6001600160a01b038085166000908152602081905260408082209390935590841681522054612a309082611a4c565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101611c8b565b612a8a81612dc9565b601c546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611418573d6000803e3d6000fd5b6000612ad0826002611ab2565b90506000612ade8383612bdb565b905047612aea83612dc9565b6000612af64783612bdb565b9050612b028382612f32565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15050505050565b600080612b55611883565b6001600160a01b038516600090815260146020526040812060020154919250612b7d866110b4565b9050811580612b8a575080155b15612b9757829350612bd2565b84612ba457819350612bd2565b612bcf612bb186836134e5565b612bbb878661351f565b612bc5848661351f565b61195b91906134e5565b93505b50505092915050565b6000611aab83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612711565b600080612c28611883565b90506000851580612c395750606485105b15612c475760009250612ce9565b81612c5387600a6134e5565b1015612ce4576064612c7e612c77612c70600261195b8b8861353e565b8590611ab2565b8290611ab2565b915084600e541115612cd95784600e54612c98919061353e565b821015612ca55781612cb3565b84600e54612cb3919061353e565b915060008211612cc4576000612cd2565b612cd28161195b8885611af4565b9350612cde565b600093505b50612ce9565b600092505b50509392505050565b6001600160a01b038216612d485760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610b43565b600254612d559082611a4c565b6002556001600160a01b038216600090815260208190526040902054612d7b9082611a4c565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161293e565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612dfe57612dfe6135c1565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015612e5257600080fd5b505afa158015612e66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e8a919061302e565b81600181518110612e9d57612e9d6135c1565b6001600160a01b039283166020918202929092010152600854612ec39130911684611b73565b60085460405163791ac94760e01b81526001600160a01b039091169063791ac94790612efc908590600090869030904290600401613474565b600060405180830381600087803b158015612f1657600080fd5b505af1158015612f2a573d6000803e3d6000fd5b505050505050565b600854612f4a9030906001600160a01b031684611b73565b600854601b5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c4016060604051808303818588803b158015612fb557600080fd5b505af1158015612fc9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612fee91906132db565b5050505050565b80516001600160701b038116811461300c57600080fd5b919050565b60006020828403121561302357600080fd5b8135611aab816135d7565b60006020828403121561304057600080fd5b8151611aab816135d7565b6000806040838503121561305e57600080fd5b8235613069816135d7565b91506020830135613079816135d7565b809150509250929050565b60008060006060848603121561309957600080fd5b83356130a4816135d7565b925060208401356130b4816135d7565b929592945050506040919091013590565b600080604083850312156130d857600080fd5b82356130e3816135d7565b91506020830135613079816135ec565b6000806040838503121561310657600080fd5b8235613111816135d7565b946020939093013593505050565b60008060006040848603121561313457600080fd5b833567ffffffffffffffff8082111561314c57600080fd5b818601915086601f83011261316057600080fd5b81358181111561316f57600080fd5b8760208260051b850101111561318457600080fd5b6020928301955093505084013561319a816135ec565b809150509250925092565b6000602082840312156131b757600080fd5b8135611aab816135ec565b6000602082840312156131d457600080fd5b8151611aab816135ec565b6000806000606084860312156131f457600080fd5b6131fd84612ff5565b925061320b60208501612ff5565b9150604084015163ffffffff8116811461319a57600080fd5b60006020828403121561323657600080fd5b5035919050565b60006020828403121561324f57600080fd5b5051919050565b60008060006060848603121561326b57600080fd5b83359250602084013561327d816135ec565b9150604084013561319a816135ec565b600080604083850312156132a057600080fd5b50508035926020909101359150565b6000806000606084860312156132c457600080fd5b505081359360208301359350604090920135919050565b6000806000606084860312156132f057600080fd5b8351925060208401519150604084015190509250925092565b6040808252810183905260008460608301825b8681101561334c57823561332f816135d7565b6001600160a01b031682526020928301929091019060010161331c565b5080925050508215156020830152949350505050565b600060208083528351808285015260005b8181101561338f57858101830151858201604001528201613373565b818111156133a1576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156134c45784516001600160a01b03168352938301939183019160010161349f565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156134f8576134f86135ab565b500190565b60008261351a57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615613539576135396135ab565b500290565b600082821015613550576135506135ab565b500390565b600181811c9082168061356957607f821691505b6020821081141561358a57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156135a4576135a46135ab565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461188057600080fd5b801515811461188057600080fdfe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e045524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220bba6b4e2f3cb466e4c5dffd1708790c9d55be0a6f22b6025630981790fd49a9464736f6c6343000807003300000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000064000000000000000000000000fbbcf047e0cec76d43f3317a65e6724d5ebaa3550000000000000000000000008507fb4cf9defca5d997a8d83b301546e9e8229a0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d