0x608060405234801561001057600080fd5b50615b3080620000216000396000f3fe6080604052600436106104135760003560e01c8063804d942611610228578063b182eb9111610128578063d1f52983116100bb578063dd62ed3e1161008a578063ef5cfb8c1161006f578063ef5cfb8c14610d3a578063f1127ed814610d5a578063f7c618c114610da457600080fd5b8063dd62ed3e14610cc6578063dd6624e414610d0c57600080fd5b8063d1f5298314610c5c578063d2423b5114610c73578063d505accf14610c86578063d547741f14610ca657600080fd5b8063c3cda520116100f7578063c3cda52014610bdb578063c89039c514610bfb578063ca15c87314610c1c578063ccddc17714610c3c57600080fd5b8063b182eb9114610b26578063b536818a14610b54578063b8162dd214610b88578063c2ee3a0814610bbf57600080fd5b806391d14854116101bb578063a217fddf1161018a578063a9059cbb1161016f578063a9059cbb14610a96578063adf8252d14610ab6578063ae22192e14610ad657600080fd5b8063a217fddf14610a61578063a457c2d714610a7657600080fd5b806391d14854146109cf57806395d89b4114610a155780639ab24eb014610a2a578063a16cdbb114610a4a57600080fd5b80638e539e8c116101f75780638e539e8c146109335780638f2203f6146109535780639010d07c14610998578063907af6c0146109b857600080fd5b8063804d9426146108a65780638258656a146108d3578063857184d1146108f35780638dbdbe6d1461091357600080fd5b80633950935111610333578063639c7ccc116102c657806378b4330f116102955780637cd0b5c71161027a5780637cd0b5c71461084f5780637e245d791461086f5780637ecebe001461088657600080fd5b806378b4330f146108185780637c516e941461082f57600080fd5b8063639c7ccc1461076c57806368570e6a1461078c5780636fcfff45146107ad57806370a08231146107e257600080fd5b806357c2c2ba1161030257806357c2c2ba146106c3578063587cde1e146106da57806359974e381461072c5780635c19a95c1461074c57600080fd5b8063395093511461064c5780633a46b1a81461066c578063507771531461068c57806354c5b696146106ac57600080fd5b806323b872dd116103ab5780632f2ff15d1161037a5780632f2ff15d146105db578063313ce567146105fb5780633644e5151461061757806336568abe1461062c57600080fd5b806323b872dd1461054b578063248a9ca31461056b578063264de7f01461059b5780632ec19841146105bb57600080fd5b8063095ea7b3116103e7578063095ea7b3146104b157806310accecc146104d157806318160ddd146104ff57806318f9e2911461051457600080fd5b8062f714ce1461041857806301ffc9a71461043a57806306fdde031461046f578063070d66bf14610491575b600080fd5b34801561042457600080fd5b506104386104333660046153a8565b610dc5565b005b34801561044657600080fd5b5061045a6104553660046153ef565b61107b565b60405190151581526020015b60405180910390f35b34801561047b57600080fd5b506104846110a6565b6040516104669190615780565b34801561049d57600080fd5b506104386104ac3660046153cd565b611138565b3480156104bd57600080fd5b5061045a6104cc36600461521c565b6113eb565b3480156104dd57600080fd5b506104f16104ec366004615117565b611403565b604051908152602001610466565b34801561050b57600080fd5b5060cb546104f1565b34801561052057600080fd5b506104f161052f366004615117565b6001600160a01b03166000908152610197602052604090205490565b34801561055757600080fd5b5061045a61056636600461516d565b611482565b34801561057757600080fd5b506104f161058636600461538f565b60009081526065602052604090206001015490565b3480156105a757600080fd5b506104386105b6366004615511565b6114a6565b3480156105c757600080fd5b506104386105d636600461560d565b6115df565b3480156105e757600080fd5b506104386105f63660046153a8565b611809565b34801561060757600080fd5b5060405160128152602001610466565b34801561062357600080fd5b506104f1611833565b34801561063857600080fd5b506104386106473660046153a8565b611842565b34801561065857600080fd5b5061045a61066736600461521c565b6118ce565b34801561067857600080fd5b506104f161068736600461521c565b61190d565b34801561069857600080fd5b506104f16106a736600461538f565b611988565b3480156106b857600080fd5b506104f16101cf5481565b3480156106cf57600080fd5b506104f16101ce5481565b3480156106e657600080fd5b506107146106f5366004615117565b6001600160a01b03908116600090815261016260205260409020541690565b6040516001600160a01b039091168152602001610466565b34801561073857600080fd5b5061043861074736600461538f565b6119aa565b34801561075857600080fd5b50610438610767366004615117565b6119cf565b34801561077857600080fd5b50610438610787366004615330565b6119d9565b34801561079857600080fd5b506101cc54610714906001600160a01b031681565b3480156107b957600080fd5b506107cd6107c8366004615117565b611c92565b60405163ffffffff9091168152602001610466565b3480156107ee57600080fd5b506104f16107fd366004615117565b6001600160a01b0316600090815260c9602052604090205490565b34801561082457600080fd5b506104f16201518081565b34801561083b57600080fd5b5061043861084a366004615419565b611cb5565b34801561085b57600080fd5b506104f161086a366004615117565b611d47565b34801561087b57600080fd5b506104f16101955481565b34801561089257600080fd5b506104f16108a1366004615117565b611d74565b3480156108b257600080fd5b506108c66108c1366004615117565b611d93565b604051610466919061570f565b3480156108df57600080fd5b506104386108ee3660046153a8565b611e3e565b3480156108ff57600080fd5b506104f161090e366004615117565b611f80565b34801561091f57600080fd5b5061043861092e366004615634565b61200a565b34801561093f57600080fd5b506104f161094e36600461538f565b6121b7565b34801561095f57600080fd5b506109776fffffffffffffffffffffffffffffffff81565b6040516fffffffffffffffffffffffffffffffff9091168152602001610466565b3480156109a457600080fd5b506107146109b33660046153cd565b612214565b3480156109c457600080fd5b506104f16101d25481565b3480156109db57600080fd5b5061045a6109ea3660046153a8565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b348015610a2157600080fd5b5061048461222c565b348015610a3657600080fd5b506104f1610a45366004615117565b61223b565b348015610a5657600080fd5b506104f16101d05481565b348015610a6d57600080fd5b506104f1600081565b348015610a8257600080fd5b5061045a610a9136600461521c565b6122c4565b348015610aa257600080fd5b5061045a610ab136600461521c565b61236e565b348015610ac257600080fd5b506104f1610ad136600461538f565b61237c565b348015610ae257600080fd5b50610af6610af136600461521c565b61249a565b60408051948552602085019390935267ffffffffffffffff91821692840192909252166060820152608001610466565b348015610b3257600080fd5b506104f1610b41366004615117565b6101966020526000908152604090205481565b348015610b6057600080fd5b506104f17f0603f2636f0ca34ae3ea5a23bb826e2bd2ffd59fb1c01edc1ba10fba2899d1ba81565b348015610b9457600080fd5b506104f1610ba3366004615117565b6001600160a01b031660009081526101d3602052604090205490565b348015610bcb57600080fd5b506104f1670de0b6b3a764000081565b348015610be757600080fd5b50610438610bf6366004615248565b6124f2565b348015610c0757600080fd5b506101ca54610714906001600160a01b031681565b348015610c2857600080fd5b506104f1610c3736600461538f565b612628565b348015610c4857600080fd5b50610438610c573660046153cd565b61263f565b348015610c6857600080fd5b506104f16101cd5481565b610438610c813660046152d9565b6127d9565b348015610c9257600080fd5b50610438610ca13660046151ae565b6128ac565b348015610cb257600080fd5b50610438610cc13660046153a8565b612a10565b348015610cd257600080fd5b506104f1610ce1366004615134565b6001600160a01b03918216600090815260ca6020908152604080832093909416825291909152205490565b348015610d1857600080fd5b506104f1610d27366004615117565b6101976020526000908152604090205481565b348015610d4657600080fd5b50610438610d55366004615117565b612a35565b348015610d6657600080fd5b50610d7a610d753660046152a2565b612b76565b60408051825163ffffffff1681526020928301516001600160e01b03169281019290925201610466565b348015610db057600080fd5b506101cb54610714906001600160a01b031681565b6001600160a01b038116610dec57604051633efa09af60e01b815260040160405180910390fd5b3360009081526101d360205260409020548210610e1c576040516306cfc55d60e21b815260040160405180910390fd5b3360009081526101d360205260408120805484908110610e3e57610e3e615abe565b60009182526020918290206040805160808101825260039093029091018054835260018101549383019390935260029092015467ffffffffffffffff80821693830193909352600160401b900490911660608201819052909150421015610eb857604051632a28ea7760e21b815260040160405180910390fd5b3360009081526101d3602052604090208054610ed69060019061599f565b81548110610ee657610ee6615abe565b90600052602060002090600302016101d36000610f003390565b6001600160a01b03166001600160a01b031681526020019081526020016000208481548110610f3157610f31615abe565b60009182526020808320845460039390930201918255600180850154908301556002938401805494909201805467ffffffffffffffff95861667ffffffffffffffff1982168117835593546fffffffffffffffffffffffffffffffff19909116909317600160401b938490049095169092029390931790553381526101d390915260409020805480610fc557610fc5615aa8565b600082815260208120600360001990930192830201818155600181019190915560020180546fffffffffffffffffffffffffffffffff19169055905561101561100b3390565b8260200151612bfb565b80516101ca54611032916001600160a01b03909116908490612c17565b805160405190815233906001600160a01b0384169085907fe5df19de43c8c04fd192bc68e484b2593570925fbb6ad8c07ccafbc2aa5c37a19060200160405180910390a4505050565b60006001600160e01b03198216635a05180f60e01b14806110a057506110a082612c7a565b92915050565b606060cc80546110b5906159f9565b80601f01602080910402602001604051908101604052809291908181526020018280546110e1906159f9565b801561112e5780601f106111035761010080835404028352916020019161112e565b820191906000526020600020905b81548152906001019060200180831161111157829003601f168201915b5050505050905090565b8061115657604051631d9b07f160e31b815260040160405180910390fd5b3360009081526101d36020526040812080548490811061117857611178615abe565b60009182526020918290206040805160808101825260039093029091018054835260018101549383019390935260029092015467ffffffffffffffff80821693830193909352600160401b90049091166060820181905290915042106111f157604051630dda7bd560e31b815260040160405180910390fd5b60006112008362015180612caf565b905060006112368242856060015167ffffffffffffffff16611222919061599f565b61122c9190615893565b6101d05490612cc5565b90506000670de0b6b3a764000061124c8361237c565b85516112589190615980565b61126291906158d7565b9050836020015181106112c5573360009081526101d36020526040902080548291908890811061129457611294615abe565b60009182526020909120600160039092020101556112c03360208601516112bb908461599f565b612cd4565b6112de565b60405163acf4257d60e01b815260040160405180910390fd5b3360009081526101d36020526040902080544291908890811061130357611303615abe565b60009182526020909120600390910201600201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905561134082426158ab565b3360009081526101d36020526040902080548890811061136257611362615abe565b906000526020600020906003020160020160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506113a03390565b6001600160a01b0316867faf206878070db16635143d5cd56a51ccd35bc26f7bdb3cd4e55e42673cd95ffa876040516113db91815260200190565b60405180910390a3505050505050565b6000336113f9818585612cf4565b5060019392505050565b6001600160a01b03811660009081526101966020526040812054610194546fffffffffffffffffffffffffffffffff9161147291611463906114509087908015614f3b021763ffffffff16565b6101955461145e9190615980565b612e18565b61146d9190615853565b612e9b565b6110a091906158d7565b60cb5490565b600033611490858285612eed565b61149b858585612f79565b506001949350505050565b600054610100900460ff16158080156114c65750600054600160ff909116105b806114e05750303b1580156114e0575060005460ff166001145b6115575760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b6000805460ff19166001179055801561157a576000805461ff0019166101001790555b61158c8b8b8b8b8b8b8b8b8b8b612fc1565b80156115d2576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050505050565b806115fd57604051636e0ccc0760e01b815260040160405180910390fd5b6001600160a01b03821660009081526101d36020526040812080548590811061162857611628615abe565b60009182526020918290206040805160808101825260039093029091018054835260018101549383019390935260029092015467ffffffffffffffff80821693830193909352600160401b90049091166060820181905290915042106116a157604051630dda7bd560e31b815260040160405180910390fd5b600042826060015167ffffffffffffffff166116bd919061599f565b90506000670de0b6b3a76400006116d38361237c565b6116dd9086615980565b6116e791906158d7565b6001600160a01b03861660009081526101d360205260409020805491925085918890811061171757611717615abe565b906000526020600020906003020160000160008282546117379190615893565b90915550506001600160a01b03851660009081526101d36020526040902080548291908890811061176a5761176a615abe565b9060005260206000209060030201600101600082825461178a9190615893565b9091555061179a90508582612cd4565b6117b3336101ca546001600160a01b031690308761312b565b336001600160a01b0316856001600160a01b0316877f0b1890568b4822f18e4a3841bcdeaa194c4fb411df05b823eada5bf88326c75f876040516117f991815260200190565b60405180910390a4505050505050565b60008281526065602052604090206001015461182481613163565b61182e838361316d565b505050565b600061183d61318f565b905090565b6001600160a01b03811633146118c05760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c660000000000000000000000000000000000606482015260840161154e565b6118ca828261320a565b5050565b33600081815260ca602090815260408083206001600160a01b03871684529091528120549091906113f99082908690611908908790615893565b612cf4565b600043821061195e5760405162461bcd60e51b815260206004820152601f60248201527f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e656400604482015260640161154e565b6001600160a01b038316600090815261016360205260409020611981908361322c565b9392505050565b6101d1818154811061199957600080fd5b600091825260209091200154905081565b6119b381613323565b6119cc336101cb546001600160a01b031690308461312b565b50565b6119cc33826133e5565b6119e161346d565b6101d154811415611a535760005b6101d154811015611a4d57611a1b838383818110611a0f57611a0f615abe565b905060200201356134b6565b6101d18281548110611a2f57611a2f615abe565b60009182526020909120015580611a4581615a2e565b9150506119ef565b50611c09565b6101d154811015611b2d5760005b81811015611ab057611a7e838383818110611a0f57611a0f615abe565b6101d18281548110611a9257611a92615abe565b60009182526020909120015580611aa881615a2e565b915050611a61565b506101d15460005b611ac2838361599f565b811015611b04576101d1805480611adb57611adb615aa8565b600190038181906000526020600020016000905590558080611afc90615a2e565b915050611ab8565b506101d154611b159060019061599f565b6101d054611b2391906158d7565b6101d25550611c09565b60005b6101d154811015611b8257611b50838383818110611a0f57611a0f615abe565b6101d18281548110611b6457611b64615abe565b60009182526020909120015580611b7a81615a2e565b915050611b30565b506101d15460005b611b94828461599f565b811015611be4576101d1611bbc8585611bad8587615893565b818110611a0f57611a0f615abe565b8154600181018355600092835260209092209091015580611bdc81615a2e565b915050611b8a565b506101d154611bf59060019061599f565b6101d054611c0391906158d7565b6101d255505b611c636101d1805480602002602001604051908101604052809291908181526020018280548015611c5957602002820191906000526020600020905b815481526020019060010190808311611c45575b50505050506134e1565b60405133907f083b2d1eedddb029c6f96b01f757111ee69f64f427e045d9586a3cd1693a6fcc90600090a25050565b6001600160a01b038116600090815261016360205260408120546110a09061358b565b60405163d505accf60e01b81526001600160a01b0388811660048301528781166024830152604482018790526064820186905260ff8516608483015260a4820184905260c4820183905289169063d505accf9060e401600060405180830381600087803b158015611d2557600080fd5b505af1158015611d39573d6000803e3d6000fd5b505050505050505050505050565b6001600160a01b03811660009081526101976020526040812054611d6a83611403565b6110a0919061599f565b6001600160a01b038116600090815261012f60205260408120546110a0565b6001600160a01b03811660009081526101d360209081526040808320805482518185028101850190935280835260609492939192909184015b82821015611e335760008481526020908190206040805160808101825260038602909201805483526001808201548486015260029091015467ffffffffffffffff80821693850193909352600160401b900490911660608301529083529092019101611dcc565b505050509050919050565b6001600160a01b03811660009081526101d360205260409020548210611e77576040516306cfc55d60e21b815260040160405180910390fd5b6001600160a01b03811660009081526101d360205260408120805484908110611ea257611ea2615abe565b60009182526020918290206040805160808101825260039093029091018054835260018101549383019390935260029092015467ffffffffffffffff80821693830193909352600160401b900490911660608201819052909150421015611f1c57604051632a28ea7760e21b815260040160405180910390fd5b611f398282600001518360200151611f34919061599f565b612bfb565b80516001600160a01b03831660009081526101d360205260409020805485908110611f6657611f66615abe565b906000526020600020906003020160010181905550505050565b60008060005b6001600160a01b03841660009081526101d36020526040902054811015612003576001600160a01b03841660009081526101d360205260409020805482908110611fd257611fd2615abe565b90600052602060002090600302016000015482611fef9190615893565b915080611ffb81615a2e565b915050611f86565b5092915050565b8261202857604051636e0ccc0760e01b815260040160405180910390fd5b60006120406101d05484612cc590919063ffffffff16565b905061204f8162015180612caf565b90506000670de0b6b3a76400006120658361237c565b61206f9087615980565b61207991906158d7565b90506101d36000846001600160a01b03166001600160a01b0316815260200190815260200160002060405180608001604052808781526020018381526020014267ffffffffffffffff16815260200184426120d491906158ab565b67ffffffffffffffff9081169091528254600181810185556000948552602094859020845160039093020191825593830151938101939093556040820151600290930180546060909301518216600160401b026fffffffffffffffffffffffffffffffff1990931693909116929092171790556121518382612cd4565b61216a336101ca546001600160a01b031690308861312b565b604080518681526020810184905233916001600160a01b038616917f34194be2f096bdb2ad418add902a4da76d3d6f6d387d86d857f56c7711ecca70910160405180910390a35050505050565b60004382106122085760405162461bcd60e51b815260206004820152601f60248201527f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e656400604482015260640161154e565b6110a06101648361322c565b60008281526097602052604081206119819083613607565b606060cd80546110b5906159f9565b6001600160a01b0381166000908152610163602052604081205480156122b1576001600160a01b03831660009081526101636020526040902061227f60018361599f565b8154811061228f5761228f615abe565b60009182526020909120015464010000000090046001600160e01b03166122b4565b60005b6001600160e01b03169392505050565b33600081815260ca602090815260408083206001600160a01b0387168452909152812054909190838110156123615760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f000000000000000000000000000000000000000000000000000000606482015260840161154e565b61149b8286868403612cf4565b6000336113f9818585612f79565b6000806101d2548361238e91906158d7565b6101d1549091506123a19060019061599f565b8114156123da576101d181815481106123bc576123bc615abe565b9060005260206000200154670de0b6b3a76400006119819190615893565b6101d2546101d182815481106123f2576123f2615abe565b90600052602060002001546101d183600161240d9190615893565b8154811061241d5761241d615abe565b9060005260206000200154612432919061599f565b6101d2546124409084615980565b61244a908661599f565b6124549190615980565b61245e91906158d7565b6101d1828154811061247257612472615abe565b9060005260206000200154670de0b6b3a76400006124909190615893565b6119819190615893565b6101d360205281600052604060002081815481106124b757600080fd5b600091825260209091206003909102018054600182015460029092015490935090915067ffffffffffffffff80821691600160401b90041684565b834211156125425760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e61747572652065787069726564000000604482015260640161154e565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b0388169181019190915260608101869052608081018590526000906125bc906125b49060a00160405160208183030381529060405280519060200120613613565b858585613661565b90506125c78161368b565b86146126155760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e636500000000000000604482015260640161154e565b61261f81886133e5565b50505050505050565b60008181526097602052604081206110a0906136b4565b61264761346d565b6101cf5482111561266b5760405163ba4a709360e01b815260040160405180910390fd5b6101d15481101561269c57816101d1828154811061268b5761268b615abe565b600091825260209091200155611c09565b6101d154811415612702576101d180546001818101835560008390527fcb7eb705d118d1261a01ba529793210c1e805fc376af74293a5f75da3c12b2ed90910184905590546126eb919061599f565b6101d0546126f991906158d7565b6101d255611c09565b6101d1546002906127159060019061599f565b101561273457604051631c629e1360e11b815260040160405180910390fd5b6101d180548061274657612746615aa8565b6001900381819060005260206000200160009055905560016101d18054905061276f919061599f565b6101d05461277d91906158d7565b6101d255611c636101d1805480602002602001604051908101604052809291908181526020018280548015611c595760200282019190600052602060002090815481526020019060010190808311611c455750505050506134e1565b60005b828110156128a657600080308686858181106127fa576127fa615abe565b905060200281019061280c91906157b3565b60405161281a929190615662565b600060405180830381855af49150503d8060008114612855576040519150601f19603f3d011682016040523d82523d6000602084013e61285a565b606091505b50915091508115801561286a5750835b1561289157612878816136be565b60405162461bcd60e51b815260040161154e9190615780565b5050808061289e90615a2e565b9150506127dc565b50505050565b834211156128fc5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e65000000604482015260640161154e565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c988888861292b8c61368b565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e001604051602081830303815290604052805190602001209050600061298682613613565b9050600061299682878787613661565b9050896001600160a01b0316816001600160a01b0316146129f95760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604482015260640161154e565b612a048a8a8a612cf4565b50505050505050505050565b600082815260656020526040902060010154612a2b81613163565b61182e838361320a565b6000612a403361371d565b90506000670de0b6b3a76400006101cd5483612a5c9190615980565b612a6691906158d7565b90506000612a74828461599f565b90508115801590612a9057506101cc546001600160a01b031615155b15612b09576101cc546101ce54604051638dbdbe6d60e01b81526004810185905260248101919091526001600160a01b03868116604483015290911690638dbdbe6d90606401600060405180830381600087803b158015612af057600080fd5b505af1158015612b04573d6000803e3d6000fd5b505050505b6001811115612b2a576101cb54612b2a906001600160a01b03168583612c17565b60408051838152602081018390526001600160a01b0386169133917fd92c424393cb3ccdf7d5e36602e3bfa34f24490579ba47978f4bcfad496995f2910160405180910390a350505050565b60408051808201909152600080825260208201526001600160a01b038316600090815261016360205260409020805463ffffffff8416908110612bbb57612bbb615abe565b60009182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b612c0582826137b4565b6118ca82612c1283612e18565b6137cd565b6040516001600160a01b03831660248201526044810182905261182e90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613820565b60006001600160e01b03198216637965db0b60e01b14806110a057506301ffc9a760e01b6001600160e01b03198316146110a0565b6000818311612cbe5781611981565b5090919050565b6000818310612cbe5781611981565b612cde8282613905565b6118ca82612ceb83612e18565b612c1290615a49565b6001600160a01b038316612d565760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161154e565b6001600160a01b038216612db75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161154e565b6001600160a01b03838116600081815260ca602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160ff1b03821115612e975760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e206160448201527f6e20696e74323536000000000000000000000000000000000000000000000000606482015260840161154e565b5090565b600080821215612e975760405162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f736974697665604482015260640161154e565b6001600160a01b03838116600090815260ca602090815260408083209386168352929052205460001981146128a65781811015612f6c5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161154e565b6128a68484848403612cf4565b60405162461bcd60e51b815260206004820152601060248201527f4e4f4e5f5452414e5346455241424c4500000000000000000000000000000000604482015260640161154e565b600054610100900460ff1661302c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161154e565b61303b8a8a8a8a8a8a8a61399d565b6201518082101561305f57604051633b3f7cd160e21b815260040160405180910390fd5b613068816134e1565b60005b81518110156130f4578382828151811061308757613087615abe565b602002602001015111156130ae5760405163ba4a709360e01b815260040160405180910390fd5b6101d18282815181106130c3576130c3615abe565b60209081029190910181015182546001810184556000938452919092200155806130ec81615a2e565b91505061306b565b506101cf8390556101d08290556101d1546131119060019061599f565b61311b90836158d7565b6101d25550505050505050505050565b6040516001600160a01b03808516602483015283166044820152606481018290526128a69085906323b872dd60e01b90608401612c43565b6119cc8133613b4c565b6131778282613bc1565b600082815260976020526040902061182e9082613c63565b600061183d7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6131be60fb5490565b60fc546040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b6132148282613c78565b600082815260976020526040902061182e9082613cfb565b81546000908181600581111561328657600061324784613d10565b613251908561599f565b600088815260209020909150869082015463ffffffff16111561327657809150613284565b613281816001615893565b92505b505b808210156132d357600061329a8383613df5565b600088815260209020909150869082015463ffffffff1611156132bf578091506132cd565b6132ca816001615893565b92505b50613286565b801561330d576132f6866132e860018461599f565b600091825260209091200190565b5464010000000090046001600160e01b0316613310565b60005b6001600160e01b03169695505050505050565b600061334f61019460089054906101000a90048015614f3b021767ffffffffffffffff1663ffffffff16565b90508061336f576040516330dbaf5560e11b815260040160405180910390fd5b81156118ca57806133906fffffffffffffffffffffffffffffffff84615980565b61339a91906158d7565b610195546133a89190615893565b6101955560405182815233907fdf29796aad820e4bb192f3a8d631b76519bcd2cbe77cc85af20e9df53cece0869060200160405180910390a25050565b6001600160a01b03828116600081815261016260208181526040808420805460c98452828620549490935287871673ffffffffffffffffffffffffffffffffffffffff198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a46128a6828483613e10565b6134977f0603f2636f0ca34ae3ea5a23bb826e2bd2ffd59fb1c01edc1ba10fba2899d1ba336109ea565b6134b457604051631f43c9cf60e31b815260040160405180910390fd5b565b60006101cf54821115612e975760405163ba4a709360e01b815260040160405180910390fd5b919050565b60028151101561350457604051631c629e1360e11b815260040160405180910390fd5b60005b60018251613515919061599f565b8110156118ca5781818151811061352e5761352e615abe565b6020026020010151828260016135449190615893565b8151811061355457613554615abe565b6020026020010151101561357b5760405163ea71ba3560e01b815260040160405180910390fd5b61358481615a2e565b9050613507565b600063ffffffff821115612e975760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201527f3220626974730000000000000000000000000000000000000000000000000000606482015260840161154e565b60006119818383613f4f565b60006110a061362061318f565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b600080600061367287878787613f79565b9150915061367f8161403d565b5090505b949350505050565b6001600160a01b038116600090815261012f602052604090208054600181018255905b50919050565b60006110a0825490565b606060448251101561370357505060408051808201909152601d81527f5472616e73616374696f6e2072657665727465642073696c656e746c79000000602082015290565b600482019150818060200190518101906110a0919061549a565b60008061372983611d47565b905080156110a0576001600160a01b03831660009081526101976020526040902054613756908290615893565b6001600160a01b03841660008181526101976020526040908190209290925590517f8a43c4352486ec339f487f64af78ca5cbf06cd47833f073d3baf3a193e503161906137a69084815260200190565b60405180910390a292915050565b6137be828261418b565b6128a66101646142c6836142d2565b610195546137db90826158f9565b6001600160a01b038316600090815261019660205260409020546137ff9190615853565b6001600160a01b039092166000908152610196602052604090209190915550565b6000613875826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166144269092919063ffffffff16565b80519091501561182e57808060200190518101906138939190615372565b61182e5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161154e565b61390f8282614435565b60cb546001600160e01b03101561398e5760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201527f766572666c6f77696e6720766f74657300000000000000000000000000000000606482015260840161154e565b6128a66101646144fe836142d2565b600054610100900460ff16613a085760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161154e565b613a118761450a565b613a1b8787614598565b613a296107fd61147c61460d565b613a346000336146b4565b613a3c6146be565b670de0b6b3a7640000821115613a6557604051635a2a1cf160e01b815260040160405180910390fd5b6001600160a01b038516613a8b5760405162f1038960e81b815260040160405180910390fd5b6001600160a01b038316158015613aa25750600082115b15613ac057604051631b739ea960e11b815260040160405180910390fd5b6101ca80546001600160a01b0380881673ffffffffffffffffffffffffffffffffffffffff19928316179092556101cb805487841690831681179091556101cc8054938716939092169290921790556101cd8390556101ce82905515801590613b3157506001600160a01b03831615155b1561261f5761261f6001600160a01b03851684600019614729565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff166118ca57613b7f81614854565b613b8a836020614866565b604051602001613b9b92919061568e565b60408051601f198184030181529082905262461bcd60e51b825261154e91600401615780565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff166118ca5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055613c1f3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000611981836001600160a01b038416614a0f565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff16156118ca5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000611981836001600160a01b038416614a5e565b600081613d1f57506000919050565b60006001613d2c84614b51565b901c6001901b90506001818481613d4557613d45615a7c565b048201901c90506001818481613d5d57613d5d615a7c565b048201901c90506001818481613d7557613d75615a7c565b048201901c90506001818481613d8d57613d8d615a7c565b048201901c90506001818481613da557613da5615a7c565b048201901c90506001818481613dbd57613dbd615a7c565b048201901c90506001818481613dd557613dd5615a7c565b048201901c905061198181828581613def57613def615a7c565b04612cc5565b6000613e0460028484186158d7565b61198190848416615893565b816001600160a01b0316836001600160a01b031614158015613e325750600081115b1561182e576001600160a01b03831615613ec1576001600160a01b0383166000908152610163602052604081208190613e6e906142c6856142d2565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051613eb6929190918252602082015260400190565b60405180910390a250505b6001600160a01b0382161561182e576001600160a01b0382166000908152610163602052604081208190613ef8906144fe856142d2565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051613f40929190918252602082015260400190565b60405180910390a25050505050565b6000826000018281548110613f6657613f66615abe565b9060005260206000200154905092915050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115613fb05750600090506003614034565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614004573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661402d57600060019250925050614034565b9150600090505b94509492505050565b600081600481111561405157614051615a92565b141561405a5750565b600181600481111561406e5761406e615a92565b14156140bc5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161154e565b60028160048111156140d0576140d0615a92565b141561411e5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161154e565b600381600481111561413257614132615a92565b14156119cc5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161154e565b6001600160a01b0382166141eb5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161154e565b6001600160a01b038216600090815260c960205260409020548181101561425f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161154e565b6001600160a01b038316600081815260c960209081526040808320868603905560cb80548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361182e83600084614be5565b6000611981828461599f565b8254600090819081811561431f576142ef876132e860018561599f565b60408051808201909152905463ffffffff8116825264010000000090046001600160e01b03166020820152614334565b60408051808201909152600080825260208201525b905080602001516001600160e01b0316935061435484868863ffffffff16565b925060008211801561436c5750805163ffffffff1643145b156143b15761437a83614c18565b614389886132e860018661599f565b80546001600160e01b03929092166401000000000263ffffffff90921691909117905561441c565b8660405180604001604052806143c64361358b565b63ffffffff1681526020016143da86614c18565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b60606136838484600085614c97565b6001600160a01b03821661448b5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161154e565b8060cb600082825461449d9190615893565b90915550506001600160a01b038216600081815260c960209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36118ca60008383614be5565b60006119818284615893565b600054610100900460ff166145755760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161154e565b6119cc81604051806040016040528060018152602001603160f81b815250614d89565b600054610100900460ff166146035760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161154e565b6118ca8282614e0e565b600054610100900460ff166146785760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161154e565b610194805467ffffffffffffffff928316600160401b026fffffffffffffffffffffffffffffffff199091169290931691909117919091179055565b6118ca828261316d565b600054610100900460ff166134b45760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161154e565b8015806147b25750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e9060440160206040518083038186803b15801561477857600080fd5b505afa15801561478c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147b091906155f4565b155b6148245760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000606482015260840161154e565b6040516001600160a01b03831660248201526044810182905261182e90849063095ea7b360e01b90606401612c43565b60606110a06001600160a01b03831660145b60606000614875836002615980565b614880906002615893565b67ffffffffffffffff81111561489857614898615ad4565b6040519080825280601f01601f1916602001820160405280156148c2576020820181803683370190505b509050600360fc1b816000815181106148dd576148dd615abe565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061490c5761490c615abe565b60200101906001600160f81b031916908160001a9053506000614930846002615980565b61493b906001615893565b90505b60018111156149c0577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061497c5761497c615abe565b1a60f81b82828151811061499257614992615abe565b60200101906001600160f81b031916908160001a90535060049490941c936149b9816159e2565b905061493e565b5083156119815760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161154e565b6000818152600183016020526040812054614a56575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556110a0565b5060006110a0565b60008181526001830160205260408120548015614b47576000614a8260018361599f565b8554909150600090614a969060019061599f565b9050818114614afb576000866000018281548110614ab657614ab6615abe565b9060005260206000200154905080876000018481548110614ad957614ad9615abe565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080614b0c57614b0c615aa8565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506110a0565b60009150506110a0565b600080608083901c15614b6657608092831c92015b604083901c15614b7857604092831c92015b602083901c15614b8a57602092831c92015b601083901c15614b9c57601092831c92015b600883901c15614bae57600892831c92015b600483901c15614bc057600492831c92015b600283901c15614bd257600292831c92015b600183901c156110a05760010192915050565b6001600160a01b038381166000908152610162602052604080822054858416835291205461182e92918216911683613e10565b60006001600160e01b03821115612e975760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203260448201527f3234206269747300000000000000000000000000000000000000000000000000606482015260840161154e565b606082471015614d0f5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161154e565b600080866001600160a01b03168587604051614d2b9190615672565b60006040518083038185875af1925050503d8060008114614d68576040519150601f19603f3d011682016040523d82523d6000602084013e614d6d565b606091505b5091509150614d7e87838387614ea0565b979650505050505050565b600054610100900460ff16614df45760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161154e565b81516020928301208151919092012060fb9190915560fc55565b600054610100900460ff16614e795760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161154e565b8151614e8c9060cc906020850190614f43565b50805161182e9060cd906020840190614f43565b60608315614f0c578251614f05576001600160a01b0385163b614f055760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161154e565b5081613683565b6136838383815115614f215781518083602001fd5b8060405162461bcd60e51b815260040161154e9190615780565b6134b4615aea565b828054614f4f906159f9565b90600052602060002090601f016020900481019282614f715760008555614fb7565b82601f10614f8a57805160ff1916838001178555614fb7565b82800160010185558215614fb7579182015b82811115614fb7578251825591602001919060010190614f9c565b50612e979291505b80821115612e975760008155600101614fbf565b80356134dc81615b00565b60008083601f840112614ff057600080fd5b50813567ffffffffffffffff81111561500857600080fd5b6020830191508360208260051b850101111561502357600080fd5b9250929050565b600082601f83011261503b57600080fd5b8135602067ffffffffffffffff82111561505757615057615ad4565b8160051b6150668282016157fa565b83815282810190868401838801850189101561508157600080fd5b600093505b858410156150a4578035835260019390930192918401918401615086565b50979650505050505050565b600082601f8301126150c157600080fd5b81356150d46150cf8261582b565b6157fa565b8181528460208386010111156150e957600080fd5b816020850160208301376000918101602001919091529392505050565b803560ff811681146134dc57600080fd5b60006020828403121561512957600080fd5b813561198181615b00565b6000806040838503121561514757600080fd5b823561515281615b00565b9150602083013561516281615b00565b809150509250929050565b60008060006060848603121561518257600080fd5b833561518d81615b00565b9250602084013561519d81615b00565b929592945050506040919091013590565b600080600080600080600060e0888a0312156151c957600080fd5b87356151d481615b00565b965060208801356151e481615b00565b9550604088013594506060880135935061520060808901615106565b925060a0880135915060c0880135905092959891949750929550565b6000806040838503121561522f57600080fd5b823561523a81615b00565b946020939093013593505050565b60008060008060008060c0878903121561526157600080fd5b863561526c81615b00565b9550602087013594506040870135935061528860608801615106565b92506080870135915060a087013590509295509295509295565b600080604083850312156152b557600080fd5b82356152c081615b00565b9150602083013563ffffffff8116811461516257600080fd5b6000806000604084860312156152ee57600080fd5b833567ffffffffffffffff81111561530557600080fd5b61531186828701614fde565b909450925050602084013561532581615b15565b809150509250925092565b6000806020838503121561534357600080fd5b823567ffffffffffffffff81111561535a57600080fd5b61536685828601614fde565b90969095509350505050565b60006020828403121561538457600080fd5b815161198181615b15565b6000602082840312156153a157600080fd5b5035919050565b600080604083850312156153bb57600080fd5b82359150602083013561516281615b00565b600080604083850312156153e057600080fd5b50508035926020909101359150565b60006020828403121561540157600080fd5b81356001600160e01b03198116811461198157600080fd5b600080600080600080600080610100898b03121561543657600080fd5b883561544181615b00565b9750602089013561545181615b00565b9650604089013561546181615b00565b9550606089013594506080890135935061547d60a08a01615106565b925060c0890135915060e089013590509295985092959890939650565b6000602082840312156154ac57600080fd5b815167ffffffffffffffff8111156154c357600080fd5b8201601f810184136154d457600080fd5b80516154e26150cf8261582b565b8181528560208385010111156154f757600080fd5b6155088260208301602086016159b6565b95945050505050565b6000806000806000806000806000806101408b8d03121561553157600080fd5b8a3567ffffffffffffffff8082111561554957600080fd5b6155558e838f016150b0565b9b5060208d013591508082111561556b57600080fd5b6155778e838f016150b0565b9a5061558560408e01614fd3565b995061559360608e01614fd3565b98506155a160808e01614fd3565b975060a08d0135965060c08d0135955060e08d013594506101008d013593506101208d01359150808211156155d557600080fd5b506155e28d828e0161502a565b9150509295989b9194979a5092959850565b60006020828403121561560657600080fd5b5051919050565b60008060006060848603121561562257600080fd5b83359250602084013561519d81615b00565b60008060006060848603121561564957600080fd5b8335925060208401359150604084013561532581615b00565b8183823760009101908152919050565b600082516156848184602087016159b6565b9190910192915050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516156c68160178501602088016159b6565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516157038160288401602088016159b6565b01602801949350505050565b602080825282518282018190526000919060409081850190868401855b828110156157735781518051855286810151878601528581015167ffffffffffffffff9081168787015260609182015116908501526080909301929085019060010161572c565b5091979650505050505050565b602081526000825180602084015261579f8160408501602087016159b6565b601f01601f19169190910160400192915050565b6000808335601e198436030181126157ca57600080fd5b83018035915067ffffffffffffffff8211156157e557600080fd5b60200191503681900382131561502357600080fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561582357615823615ad4565b604052919050565b600067ffffffffffffffff82111561584557615845615ad4565b50601f01601f191660200190565b6000808212826001600160ff1b030384138115161561587457615874615a66565b600160ff1b839003841281161561588d5761588d615a66565b50500190565b600082198211156158a6576158a6615a66565b500190565b600067ffffffffffffffff8083168185168083038211156158ce576158ce615a66565b01949350505050565b6000826158f457634e487b7160e01b600052601260045260246000fd5b500490565b60006001600160ff1b0360008413600084138583048511828216161561592157615921615a66565b600160ff1b600087128281168783058912161561594057615940615a66565b6000871292508782058712848416161561595c5761595c615a66565b8785058712818416161561597257615972615a66565b505050929093029392505050565b600081600019048311821515161561599a5761599a615a66565b500290565b6000828210156159b1576159b1615a66565b500390565b60005b838110156159d15781810151838201526020016159b9565b838111156128a65750506000910152565b6000816159f1576159f1615a66565b506000190190565b600181811c90821680615a0d57607f821691505b602082108114156136ae57634e487b7160e01b600052602260045260246000fd5b6000600019821415615a4257615a42615a66565b5060010190565b6000600160ff1b821415615a5f57615a5f615a66565b5060000390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052605160045260246000fd5b6001600160a01b03811681146119cc57600080fd5b80151581146119cc57600080fdfea164736f6c6343000807000a