0x608060405260043610610134575f3560e01c8063715018a6116100a857806395d89b411161006d57806395d89b4114610390578063a9059cbb146103bd578063ce8cecbf146103dc578063d91ad8ba146103fb578063dd62ed3e1461041a578063e8078d941461045e575f80fd5b8063715018a614610319578063751039fc1461032d5780638a8c523c146103415780638cd4426d146103555780638da5cb5b14610374575f80fd5b806323b872dd116100f957806323b872dd14610236578063313ce567146102555780633f4218e01461027057806349bd5a5e146102a7578063590ffdce146102c657806370a08231146102e5575f80fd5b806306fdde031461013f578063095ea7b3146101845780631694505e146101b357806318160ddd146101fe57806320800a0014610220575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b5060408051808201909152600b81526a4c75636b792042696c6c7960a81b60208201525b60405161017b919061184d565b60405180910390f35b34801561018f575f80fd5b506101a361019e366004611896565b610472565b604051901515815260200161017b565b3480156101be575f80fd5b506101e67f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b03909116815260200161017b565b348015610209575f80fd5b50610212610488565b60405190815260200161017b565b34801561022b575f80fd5b506102346104a9565b005b348015610241575f80fd5b506101a36102503660046118c0565b61052f565b348015610260575f80fd5b506040516009815260200161017b565b34801561027b575f80fd5b506101a361028a3660046118fe565b6001600160a01b03165f9081526011602052604090205460ff1690565b3480156102b2575f80fd5b506014546101e6906001600160a01b031681565b3480156102d1575f80fd5b506102346102e036600461192d565b6105de565b3480156102f0575f80fd5b506102126102ff3660046118fe565b6001600160a01b03165f908152600f602052604090205490565b348015610324575f80fd5b50610234610640565b348015610338575f80fd5b50610234610689565b34801561034c575f80fd5b506102346106ce565b348015610360575f80fd5b5061023461036f366004611896565b610765565b34801561037f575f80fd5b505f546001600160a01b03166101e6565b34801561039b575f80fd5b5060408051808201909152600581526442494c4c5960d81b602082015261016e565b3480156103c8575f80fd5b506101a36103d7366004611896565b6108b4565b3480156103e7575f80fd5b506102346103f636600461192d565b6108c0565b348015610406575f80fd5b5061023461041536600461192d565b610980565b348015610425575f80fd5b50610212610434366004611964565b6001600160a01b039182165f90815260106020908152604080832093909416825291909152205490565b348015610469575f80fd5b506102346109e2565b5f61047e338484610d3a565b5060015b92915050565b5f6104956009600a611a84565b6104a49064a0c03d2500611a92565b905090565b336104bb5f546001600160a01b031690565b6001600160a01b0316146104ea5760405162461bcd60e51b81526004016104e190611aa9565b60405180910390fd5b5f47116104f5575f80fd5b5f80546040516001600160a01b03909116914780156108fc02929091818181858888f1935050505015801561052c573d5f803e3d5ffd5b50565b6001600160a01b0383165f9081526010602090815260408083203384529091528120545f1981146105c857828110156105bb5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016104e1565b6105c88533858403610d3a565b6105d3858585610e5d565b506001949350505050565b336105f05f546001600160a01b031690565b6001600160a01b0316146106165760405162461bcd60e51b81526004016104e190611aa9565b6001600160a01b03919091165f908152601160205260409020805460ff1916911515919091179055565b336106525f546001600160a01b031690565b6001600160a01b0316146106785760405162461bcd60e51b81526004016104e190611aa9565b5f80546001600160a01b0319169055565b3361069b5f546001600160a01b031690565b6001600160a01b0316146106c15760405162461bcd60e51b81526004016104e190611aa9565b600e805461ff0019169055565b336106e05f546001600160a01b031690565b6001600160a01b0316146107065760405162461bcd60e51b81526004016104e190611aa9565b600e5462010000900460ff16156107525760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481b185d5b98da195960821b60448201526064016104e1565b600e805462ff0000191662010000179055565b336107775f546001600160a01b031690565b6001600160a01b03161461079d5760405162461bcd60e51b81526004016104e190611aa9565b6040516370a0823160e01b81523060048201525f9060649083906001600160a01b038616906370a0823190602401602060405180830381865afa1580156107e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080a9190611ade565b6108149190611a92565b61081e9190611af5565b9050826001600160a01b031663a9059cbb6108405f546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af115801561088a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ae9190611b14565b50505050565b5f61047e338484610e5d565b336108d25f546001600160a01b031690565b6001600160a01b0316146108f85760405162461bcd60e51b81526004016104e190611aa9565b6014546001600160a01b03908116908316036109565760405162461bcd60e51b815260206004820152601a60248201527f54686520706169722063616e6e6f742062652072656d6f76656400000000000060448201526064016104e1565b6001600160a01b03919091165f908152601360205260409020805460ff1916911515919091179055565b336109925f546001600160a01b031690565b6001600160a01b0316146109b85760405162461bcd60e51b81526004016104e190611aa9565b6001600160a01b03919091165f908152601260205260409020805460ff1916911515919091179055565b336109f45f546001600160a01b031690565b6001600160a01b031614610a1a5760405162461bcd60e51b81526004016104e190611aa9565b600e5462010000900460ff1615610a665760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481b185d5b98da195960821b60448201526064016104e1565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae69190611b2f565b6001600160a01b031663c9c65396307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b51573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b759190611b2f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610bbf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610be39190611b2f565b601480546001600160a01b0319166001600160a01b0392831690811782555f908152601360205260409020805460ff191660019081179091559054610c29921690610980565b610c55307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d5f19610d3a565b305f818152600f60205260408120546001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169263f305d7199247929080610caa5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610d10573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610d359190611b4a565b505050565b6001600160a01b038316610d9c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104e1565b6001600160a01b038216610dfd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104e1565b6001600160a01b038381165f8181526010602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ec15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104e1565b6001600160a01b038216610f235760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104e1565b5f8111610f845760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104e1565b600e5462010000900460ff16158015610fd757505f546001600160a01b03848116911614801590610fbe57506001600160a01b0383163014155b8015610fd757505f546001600160a01b03838116911614155b1561101a5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016104e1565b6001600160a01b0383165f9081526013602052604081205460ff168061105757506001600160a01b0383165f9081526013602052604090205460ff165b600e54909150610100900460ff1615611312575f546001600160a01b0385811691161480159061109457505f546001600160a01b03848116911614155b80156110a857506001600160a01b03831615155b80156110bf57506001600160a01b03831661dead14155b80156110ce5750600e5460ff16155b15611312576001600160a01b0384165f9081526013602052604090205460ff16801561111257506001600160a01b0383165f9081526012602052604090205460ff16155b156111e5576001548211156111775760405162461bcd60e51b815260206004820152602560248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152640dac2f0a8f60db1b60648201526084016104e1565b6002546001600160a01b0384165f908152600f602052604090205461119c9084611b75565b11156111e05760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016104e1565b611312565b6001600160a01b0383165f9081526013602052604090205460ff16801561122457506001600160a01b0384165f9081526012602052604090205460ff16155b1561128a576001548211156111e05760405162461bcd60e51b815260206004820152602660248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015265040dac2f0a8f60d31b60648201526084016104e1565b6001600160a01b0383165f9081526012602052604090205460ff16611312576002546001600160a01b0384165f908152600f60205260409020546112ce9084611b75565b11156113125760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016104e1565b600354305f908152600f60205260409020541080159081906113375750600e5460ff16155b801561135a57506001600160a01b0384165f9081526013602052604090205460ff165b801561137e57506001600160a01b0385165f9081526011602052604090205460ff16155b80156113a257506001600160a01b0384165f9081526011602052604090205460ff16155b156113c757600e805460ff191660011790556113bc61162c565b600e805460ff191690555b600554600e546001600160a01b0387811692169190911415925060ff6201000090910416801561140e57506001600160a01b0384165f9081526013602052604090205460ff165b1561141c5761141c476117aa565b600e546001600160a01b0386165f9081526011602052604090205460ff9182161591168061146157506001600160a01b0385165f9081526011602052604090205460ff165b1561146957505f5b5f8115611528576001600160a01b0386165f9081526013602052604090205460ff16156114c4576064600b54600d54116114a5576007546114a9565b6009545b6114b39087611a92565b6114bd9190611af5565b9050611528565b6001600160a01b0387165f9081526013602052604090205460ff1615611528576064600a54600d54116114f9576006546114fd565b6008545b6115079087611a92565b6115119190611af5565b600d80549192505f61152283611b88565b91905055505b6001600160a01b0387165f908152600f602052604090205461154d90859087906117e5565b80156115ba576001600160a01b0387165f818152600f602090815260408083208054869003905530808452928190208054860190555184815297849003979192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b6001600160a01b038088165f818152600f602052604080822080548a900390559289168082529083902080548901905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061161b9089815260200190565b60405180910390a350505050505050565b6004546040805160028082526060820183525f9260208301908036833701905050905030815f8151811061166257611662611ba0565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116de573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117029190611b2f565b8160018151811061171557611715611ba0565b6001600160a01b03928316602091820292909201015260405163791ac94760e01b81527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d9091169063791ac947906117799085905f90869030904290600401611bb4565b5f604051808303815f87803b158015611790575f80fd5b505af11580156117a2573d5f803e3d5ffd5b505050505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156117e1573d5f803e3d5ffd5b5050565b81811015806117f2575082155b610d355760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016104e1565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461052c575f80fd5b5f80604083850312156118a7575f80fd5b82356118b281611882565b946020939093013593505050565b5f805f606084860312156118d2575f80fd5b83356118dd81611882565b925060208401356118ed81611882565b929592945050506040919091013590565b5f6020828403121561190e575f80fd5b813561191981611882565b9392505050565b801515811461052c575f80fd5b5f806040838503121561193e575f80fd5b823561194981611882565b9150602083013561195981611920565b809150509250929050565b5f8060408385031215611975575f80fd5b823561198081611882565b9150602083013561195981611882565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156119de57815f19048211156119c4576119c4611990565b808516156119d157918102915b93841c93908002906119a9565b509250929050565b5f826119f457506001610482565b81611a0057505f610482565b8160018114611a165760028114611a2057611a3c565b6001915050610482565b60ff841115611a3157611a31611990565b50506001821b610482565b5060208310610133831016604e8410600b8410161715611a5f575081810a610482565b611a6983836119a4565b805f1904821115611a7c57611a7c611990565b029392505050565b5f61191960ff8416836119e6565b808202811582820484141761048257610482611990565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611aee575f80fd5b5051919050565b5f82611b0f57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611b24575f80fd5b815161191981611920565b5f60208284031215611b3f575f80fd5b815161191981611882565b5f805f60608486031215611b5c575f80fd5b8351925060208401519150604084015190509250925092565b8082018082111561048257610482611990565b5f60018201611b9957611b99611990565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611c045784516001600160a01b031683529383019391830191600101611bdf565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212201b415e31f2e9e1349ca2a1d9fc9a71c3ce08f36283846bb9c837863d3af3146464736f6c63430008190033
0x60a060405260646100126009600a610442565b6100219064a0c03d2500610457565b61002c906002610457565b610036919061046e565b60015560646100476009600a610442565b6100569064a0c03d2500610457565b610061906002610457565b61006b919061046e565b6002556103e861007d6009600a610442565b61008c9064a0c03d2500610457565b61009790600b610457565b6100a1919061046e565b6003556103e86100b36009600a610442565b6100c29064a0c03d2500610457565b6100cd90600b610457565b6100d7919061046e565b600490815560068190556007555f60088190556009819055600a808055600b819055600c55600d55600e805461ff001916610100179055348015610119575f80fd5b50604051612199380380612199833981016040819052610138916104a4565b5f8054336001600160a01b031991821681179092556001600160a01b0384811660805260058054909216908416179055610173906001610249565b61017e306001610249565b600554610195906001600160a01b03166001610249565b6101b06101a95f546001600160a01b031690565b60016102cd565b6080516101be9060016102cd565b6101c93060016102cd565b6005546101e0906001600160a01b031660016102cd565b6101ec6009600a610442565b6101fb9064a0c03d2500610457565b335f818152600f6020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350506104dc565b3361025b5f546001600160a01b031690565b6001600160a01b0316146102a35760405162461bcd60e51b815260206004820181905260248201525f8051602061217983398151915260448201526064015b60405180910390fd5b6001600160a01b03919091165f908152601160205260409020805460ff1916911515919091179055565b336102df5f546001600160a01b031690565b6001600160a01b0316146103225760405162461bcd60e51b815260206004820181905260248201525f80516020612179833981519152604482015260640161029a565b6001600160a01b03919091165f908152601260205260409020805460ff1916911515919091179055565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561039a57815f19048211156103805761038061034c565b8085161561038d57918102915b93841c9390800290610365565b509250929050565b5f826103b05750600161043c565b816103bc57505f61043c565b81600181146103d257600281146103dc576103f8565b600191505061043c565b60ff8411156103ed576103ed61034c565b50506001821b61043c565b5060208310610133831016604e8410600b841016171561041b575081810a61043c565b6104258383610360565b805f19048211156104385761043861034c565b0290505b92915050565b5f61045060ff8416836103a2565b9392505050565b808202811582820484141761043c5761043c61034c565b5f8261048857634e487b7160e01b5f52601260045260245ffd5b500490565b6001600160a01b03811681146104a1575f80fd5b50565b5f80604083850312156104b5575f80fd5b82516104c08161048d565b60208401519092506104d18161048d565b809150509250929050565b608051611c5b61051e5f395f81816101c401528181610a6801528181610af701528181610c2f01528181610c6e01528181611684015261173a0152611c5b5ff3fe608060405260043610610134575f3560e01c8063715018a6116100a857806395d89b411161006d57806395d89b4114610390578063a9059cbb146103bd578063ce8cecbf146103dc578063d91ad8ba146103fb578063dd62ed3e1461041a578063e8078d941461045e575f80fd5b8063715018a614610319578063751039fc1461032d5780638a8c523c146103415780638cd4426d146103555780638da5cb5b14610374575f80fd5b806323b872dd116100f957806323b872dd14610236578063313ce567146102555780633f4218e01461027057806349bd5a5e146102a7578063590ffdce146102c657806370a08231146102e5575f80fd5b806306fdde031461013f578063095ea7b3146101845780631694505e146101b357806318160ddd146101fe57806320800a0014610220575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b5060408051808201909152600b81526a4c75636b792042696c6c7960a81b60208201525b60405161017b919061184d565b60405180910390f35b34801561018f575f80fd5b506101a361019e366004611896565b610472565b604051901515815260200161017b565b3480156101be575f80fd5b506101e67f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161017b565b348015610209575f80fd5b50610212610488565b60405190815260200161017b565b34801561022b575f80fd5b506102346104a9565b005b348015610241575f80fd5b506101a36102503660046118c0565b61052f565b348015610260575f80fd5b506040516009815260200161017b565b34801561027b575f80fd5b506101a361028a3660046118fe565b6001600160a01b03165f9081526011602052604090205460ff1690565b3480156102b2575f80fd5b506014546101e6906001600160a01b031681565b3480156102d1575f80fd5b506102346102e036600461192d565b6105de565b3480156102f0575f80fd5b506102126102ff3660046118fe565b6001600160a01b03165f908152600f602052604090205490565b348015610324575f80fd5b50610234610640565b348015610338575f80fd5b50610234610689565b34801561034c575f80fd5b506102346106ce565b348015610360575f80fd5b5061023461036f366004611896565b610765565b34801561037f575f80fd5b505f546001600160a01b03166101e6565b34801561039b575f80fd5b5060408051808201909152600581526442494c4c5960d81b602082015261016e565b3480156103c8575f80fd5b506101a36103d7366004611896565b6108b4565b3480156103e7575f80fd5b506102346103f636600461192d565b6108c0565b348015610406575f80fd5b5061023461041536600461192d565b610980565b348015610425575f80fd5b50610212610434366004611964565b6001600160a01b039182165f90815260106020908152604080832093909416825291909152205490565b348015610469575f80fd5b506102346109e2565b5f61047e338484610d3a565b5060015b92915050565b5f6104956009600a611a84565b6104a49064a0c03d2500611a92565b905090565b336104bb5f546001600160a01b031690565b6001600160a01b0316146104ea5760405162461bcd60e51b81526004016104e190611aa9565b60405180910390fd5b5f47116104f5575f80fd5b5f80546040516001600160a01b03909116914780156108fc02929091818181858888f1935050505015801561052c573d5f803e3d5ffd5b50565b6001600160a01b0383165f9081526010602090815260408083203384529091528120545f1981146105c857828110156105bb5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016104e1565b6105c88533858403610d3a565b6105d3858585610e5d565b506001949350505050565b336105f05f546001600160a01b031690565b6001600160a01b0316146106165760405162461bcd60e51b81526004016104e190611aa9565b6001600160a01b03919091165f908152601160205260409020805460ff1916911515919091179055565b336106525f546001600160a01b031690565b6001600160a01b0316146106785760405162461bcd60e51b81526004016104e190611aa9565b5f80546001600160a01b0319169055565b3361069b5f546001600160a01b031690565b6001600160a01b0316146106c15760405162461bcd60e51b81526004016104e190611aa9565b600e805461ff0019169055565b336106e05f546001600160a01b031690565b6001600160a01b0316146107065760405162461bcd60e51b81526004016104e190611aa9565b600e5462010000900460ff16156107525760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481b185d5b98da195960821b60448201526064016104e1565b600e805462ff0000191662010000179055565b336107775f546001600160a01b031690565b6001600160a01b03161461079d5760405162461bcd60e51b81526004016104e190611aa9565b6040516370a0823160e01b81523060048201525f9060649083906001600160a01b038616906370a0823190602401602060405180830381865afa1580156107e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080a9190611ade565b6108149190611a92565b61081e9190611af5565b9050826001600160a01b031663a9059cbb6108405f546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af115801561088a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ae9190611b14565b50505050565b5f61047e338484610e5d565b336108d25f546001600160a01b031690565b6001600160a01b0316146108f85760405162461bcd60e51b81526004016104e190611aa9565b6014546001600160a01b03908116908316036109565760405162461bcd60e51b815260206004820152601a60248201527f54686520706169722063616e6e6f742062652072656d6f76656400000000000060448201526064016104e1565b6001600160a01b03919091165f908152601360205260409020805460ff1916911515919091179055565b336109925f546001600160a01b031690565b6001600160a01b0316146109b85760405162461bcd60e51b81526004016104e190611aa9565b6001600160a01b03919091165f908152601260205260409020805460ff1916911515919091179055565b336109f45f546001600160a01b031690565b6001600160a01b031614610a1a5760405162461bcd60e51b81526004016104e190611aa9565b600e5462010000900460ff1615610a665760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481b185d5b98da195960821b60448201526064016104e1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae69190611b2f565b6001600160a01b031663c9c65396307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b51573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b759190611b2f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610bbf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610be39190611b2f565b601480546001600160a01b0319166001600160a01b0392831690811782555f908152601360205260409020805460ff191660019081179091559054610c29921690610980565b610c55307f00000000000000000000000000000000000000000000000000000000000000005f19610d3a565b305f818152600f60205260408120546001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263f305d7199247929080610caa5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610d10573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610d359190611b4a565b505050565b6001600160a01b038316610d9c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104e1565b6001600160a01b038216610dfd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104e1565b6001600160a01b038381165f8181526010602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ec15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104e1565b6001600160a01b038216610f235760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104e1565b5f8111610f845760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104e1565b600e5462010000900460ff16158015610fd757505f546001600160a01b03848116911614801590610fbe57506001600160a01b0383163014155b8015610fd757505f546001600160a01b03838116911614155b1561101a5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016104e1565b6001600160a01b0383165f9081526013602052604081205460ff168061105757506001600160a01b0383165f9081526013602052604090205460ff165b600e54909150610100900460ff1615611312575f546001600160a01b0385811691161480159061109457505f546001600160a01b03848116911614155b80156110a857506001600160a01b03831615155b80156110bf57506001600160a01b03831661dead14155b80156110ce5750600e5460ff16155b15611312576001600160a01b0384165f9081526013602052604090205460ff16801561111257506001600160a01b0383165f9081526012602052604090205460ff16155b156111e5576001548211156111775760405162461bcd60e51b815260206004820152602560248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152640dac2f0a8f60db1b60648201526084016104e1565b6002546001600160a01b0384165f908152600f602052604090205461119c9084611b75565b11156111e05760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016104e1565b611312565b6001600160a01b0383165f9081526013602052604090205460ff16801561122457506001600160a01b0384165f9081526012602052604090205460ff16155b1561128a576001548211156111e05760405162461bcd60e51b815260206004820152602660248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015265040dac2f0a8f60d31b60648201526084016104e1565b6001600160a01b0383165f9081526012602052604090205460ff16611312576002546001600160a01b0384165f908152600f60205260409020546112ce9084611b75565b11156113125760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016104e1565b600354305f908152600f60205260409020541080159081906113375750600e5460ff16155b801561135a57506001600160a01b0384165f9081526013602052604090205460ff165b801561137e57506001600160a01b0385165f9081526011602052604090205460ff16155b80156113a257506001600160a01b0384165f9081526011602052604090205460ff16155b156113c757600e805460ff191660011790556113bc61162c565b600e805460ff191690555b600554600e546001600160a01b0387811692169190911415925060ff6201000090910416801561140e57506001600160a01b0384165f9081526013602052604090205460ff165b1561141c5761141c476117aa565b600e546001600160a01b0386165f9081526011602052604090205460ff9182161591168061146157506001600160a01b0385165f9081526011602052604090205460ff165b1561146957505f5b5f8115611528576001600160a01b0386165f9081526013602052604090205460ff16156114c4576064600b54600d54116114a5576007546114a9565b6009545b6114b39087611a92565b6114bd9190611af5565b9050611528565b6001600160a01b0387165f9081526013602052604090205460ff1615611528576064600a54600d54116114f9576006546114fd565b6008545b6115079087611a92565b6115119190611af5565b600d80549192505f61152283611b88565b91905055505b6001600160a01b0387165f908152600f602052604090205461154d90859087906117e5565b80156115ba576001600160a01b0387165f818152600f602090815260408083208054869003905530808452928190208054860190555184815297849003979192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b6001600160a01b038088165f818152600f602052604080822080548a900390559289168082529083902080548901905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061161b9089815260200190565b60405180910390a350505050505050565b6004546040805160028082526060820183525f9260208301908036833701905050905030815f8151811061166257611662611ba0565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116de573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117029190611b2f565b8160018151811061171557611715611ba0565b6001600160a01b03928316602091820292909201015260405163791ac94760e01b81527f00000000000000000000000000000000000000000000000000000000000000009091169063791ac947906117799085905f90869030904290600401611bb4565b5f604051808303815f87803b158015611790575f80fd5b505af11580156117a2573d5f803e3d5ffd5b505050505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156117e1573d5f803e3d5ffd5b5050565b81811015806117f2575082155b610d355760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016104e1565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461052c575f80fd5b5f80604083850312156118a7575f80fd5b82356118b281611882565b946020939093013593505050565b5f805f606084860312156118d2575f80fd5b83356118dd81611882565b925060208401356118ed81611882565b929592945050506040919091013590565b5f6020828403121561190e575f80fd5b813561191981611882565b9392505050565b801515811461052c575f80fd5b5f806040838503121561193e575f80fd5b823561194981611882565b9150602083013561195981611920565b809150509250929050565b5f8060408385031215611975575f80fd5b823561198081611882565b9150602083013561195981611882565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156119de57815f19048211156119c4576119c4611990565b808516156119d157918102915b93841c93908002906119a9565b509250929050565b5f826119f457506001610482565b81611a0057505f610482565b8160018114611a165760028114611a2057611a3c565b6001915050610482565b60ff841115611a3157611a31611990565b50506001821b610482565b5060208310610133831016604e8410600b8410161715611a5f575081810a610482565b611a6983836119a4565b805f1904821115611a7c57611a7c611990565b029392505050565b5f61191960ff8416836119e6565b808202811582820484141761048257610482611990565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611aee575f80fd5b5051919050565b5f82611b0f57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611b24575f80fd5b815161191981611920565b5f60208284031215611b3f575f80fd5b815161191981611882565b5f805f60608486031215611b5c575f80fd5b8351925060208401519150604084015190509250925092565b8082018082111561048257610482611990565b5f60018201611b9957611b99611990565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611c045784516001600160a01b031683529383019391830191600101611bdf565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212201b415e31f2e9e1349ca2a1d9fc9a71c3ce08f36283846bb9c837863d3af3146464736f6c634300081900334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65720000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d00000000000000000000000052b4036b28101485eb2734d25c3f0f374c92e8cc