608060405234801562000010575f80fd5b5060405162001a1238038062001a128339810160408190526200003391620001c6565b3384845f62000043838262000304565b50600162000052828262000304565b5050506001600160a01b0381166200008357604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6200008e81620000b7565b5060086200009d838262000304565b506009620000ac828262000304565b5050505050620003cc565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126200012c575f80fd5b81516001600160401b038082111562000149576200014962000108565b604051601f8301601f19908116603f0116810190828211818310171562000174576200017462000108565b8160405283815260209250868385880101111562000190575f80fd5b5f91505b83821015620001b3578582018301518183018401529082019062000194565b5f93810190920192909252949350505050565b5f805f8060808587031215620001da575f80fd5b84516001600160401b0380821115620001f1575f80fd5b620001ff888389016200011c565b9550602087015191508082111562000215575f80fd5b62000223888389016200011c565b9450604087015191508082111562000239575f80fd5b62000247888389016200011c565b935060608701519150808211156200025d575f80fd5b506200026c878288016200011c565b91505092959194509250565b600181811c908216806200028d57607f821691505b602082108103620002ac57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620002ff575f81815260208120601f850160051c81016020861015620002da5750805b601f850160051c820191505b81811015620002fb57828155600101620002e6565b5050505b505050565b81516001600160401b0381111562000320576200032062000108565b620003388162000331845462000278565b84620002b2565b602080601f8311600181146200036e575f8415620003565750858301515b5f19600386901b1c1916600185901b178555620002fb565b5f85815260208120601f198616915b828110156200039e578886015182559484019460019091019084016200037d565b5085821015620003bc57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b61163880620003da5f395ff3fe608060405234801561000f575f80fd5b506004361061011c575f3560e01c806370a08231116100a9578063a22cb4651161006e578063a22cb46514610251578063b88d4fde14610264578063c87b56dd14610277578063e985e9c51461028a578063f2fde38b1461029d575f80fd5b806370a08231146101fc578063715018a61461021d57806375d5ae9f146102255780638da5cb5b1461023857806395d89b4114610249575f80fd5b806323b872dd116100ef57806323b872dd1461019d5780632edb5844146101b05780633c168eab146101c357806342842e0e146101d65780636352211e146101e9575f80fd5b806301ffc9a71461012057806306fdde0314610148578063081812fc1461015d578063095ea7b314610188575b5f80fd5b61013361012e366004611016565b6102b0565b60405190151581526020015b60405180910390f35b6101506102da565b60405161013f919061107e565b61017061016b366004611090565b610369565b6040516001600160a01b03909116815260200161013f565b61019b6101963660046110c2565b610390565b005b61019b6101ab3660046110ea565b61039f565b61019b6101be3660046111aa565b61042d565b61019b6101d13660046110c2565b610441565b61019b6101e43660046110ea565b6104e9565b6101706101f7366004611090565b610503565b61020f61020a3660046111ef565b61050d565b60405190815260200161013f565b61019b610552565b61019b6102333660046111aa565b610565565b6007546001600160a01b0316610170565b610150610579565b61019b61025f366004611208565b610588565b61019b610272366004611241565b610593565b610150610285366004611090565b6105ab565b6101336102983660046112b8565b6106b6565b61019b6102ab3660046111ef565b6106e3565b5f6001600160e01b03198216632483248360e11b14806102d457506102d482610720565b92915050565b60605f80546102e8906112e9565b80601f0160208091040260200160405190810160405280929190818152602001828054610314906112e9565b801561035f5780601f106103365761010080835404028352916020019161035f565b820191905f5260205f20905b81548152906001019060200180831161034257829003601f168201915b5050505050905090565b5f6103738261076f565b505f828152600460205260409020546001600160a01b03166102d4565b61039b8282336107a7565b5050565b6001600160a01b0382166103cd57604051633250574960e11b81525f60048201526024015b60405180910390fd5b5f6103d98383336107b4565b9050836001600160a01b0316816001600160a01b031614610427576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016103c4565b50505050565b6104356108a6565b600861039b8282611366565b6104496108a6565b5f60088054610457906112e9565b90501161049d5760405162461bcd60e51b815260206004820152601460248201527313595d1859185d184810d251081b9bdd081cd95d60621b60448201526064016103c4565b5f60086104ab8360046108d3565b60096040516020016104bf93929190611491565b60405160208183030381529060405290506104da8383610999565b6104e482826109fa565b505050565b6104e483838360405180602001604052805f815250610593565b5f6102d48261076f565b5f6001600160a01b038216610537576040516322718ad960e21b81525f60048201526024016103c4565b506001600160a01b03165f9081526003602052604090205490565b61055a6108a6565b6105635f610a49565b565b61056d6108a6565b600961039b8282611366565b6060600180546102e8906112e9565b61039b338383610a9a565b61059e84848461039f565b6104273385858585610b38565b60606105b68261076f565b505f82815260066020526040812080546105cf906112e9565b80601f01602080910402602001604051908101604052809291908181526020018280546105fb906112e9565b80156106465780601f1061061d57610100808354040283529160200191610646565b820191905f5260205f20905b81548152906001019060200180831161062957829003601f168201915b505050505090505f61066260408051602081019091525f815290565b905080515f03610673575092915050565b8151156106a557808260405160200161068d9291906114e0565b60405160208183030381529060405292505050919050565b6106ae84610c60565b949350505050565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205460ff1690565b6106eb6108a6565b6001600160a01b03811661071457604051631e4fbdf760e01b81525f60048201526024016103c4565b61071d81610a49565b50565b5f6001600160e01b031982166380ac58cd60e01b148061075057506001600160e01b03198216635b5e139f60e01b145b806102d457506301ffc9a760e01b6001600160e01b03198316146102d4565b5f818152600260205260408120546001600160a01b0316806102d457604051637e27328960e01b8152600481018490526024016103c4565b6104e48383836001610cd1565b5f828152600260205260408120546001600160a01b03908116908316156107e0576107e0818486610dd5565b6001600160a01b0381161561081a576107fb5f855f80610cd1565b6001600160a01b0381165f90815260036020526040902080545f190190555b6001600160a01b03851615610848576001600160a01b0385165f908152600360205260409020805460010190555b5f8481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6007546001600160a01b031633146105635760405163118cdaa760e01b81523360048201526024016103c4565b60605f8267ffffffffffffffff8111156108ef576108ef611123565b6040519080825280601f01601f191660200182016040528015610919576020820181803683370190505b50905083835b801561098f57610930600a83611522565b61093b906030611549565b60f81b8361094a60018461155c565b8151811061095a5761095a61156f565b60200101906001600160f81b03191690815f1a90535061097b600a83611583565b91508061098781611596565b91505061091f565b5090949350505050565b6001600160a01b0382166109c257604051633250574960e11b81525f60048201526024016103c4565b5f6109ce83835f6107b4565b90506001600160a01b038116156104e4576040516339e3563760e11b81525f60048201526024016103c4565b5f828152600660205260409020610a118282611366565b506040518281527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79060200160405180910390a15050565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038216610acc57604051630b61174360e31b81526001600160a01b03831660048201526024016103c4565b6001600160a01b038381165f81815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b15610c5957604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290610b7a9088908890879087906004016115ab565b6020604051808303815f875af1925050508015610bb4575060408051601f3d908101601f19168201909252610bb1918101906115e7565b60015b610c1b573d808015610be1576040519150601f19603f3d011682016040523d82523d5f602084013e610be6565b606091505b5080515f03610c1357604051633250574960e11b81526001600160a01b03851660048201526024016103c4565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610c5757604051633250574960e11b81526001600160a01b03851660048201526024016103c4565b505b5050505050565b6060610c6b8261076f565b505f610c8160408051602081019091525f815290565b90505f815111610c9f5760405180602001604052805f815250610cca565b80610ca984610e39565b604051602001610cba9291906114e0565b6040516020818303038152906040525b9392505050565b8080610ce557506001600160a01b03821615155b15610da6575f610cf48461076f565b90506001600160a01b03831615801590610d205750826001600160a01b0316816001600160a01b031614155b8015610d335750610d3181846106b6565b155b15610d5c5760405163a9fbf51f60e01b81526001600160a01b03841660048201526024016103c4565b8115610da45783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b50505f90815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610de0838383610ec9565b6104e4576001600160a01b038316610e0e57604051637e27328960e01b8152600481018290526024016103c4565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016103c4565b60605f610e4583610f2a565b60010190505f8167ffffffffffffffff811115610e6457610e64611123565b6040519080825280601f01601f191660200182016040528015610e8e576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610e9857509392505050565b5f6001600160a01b038316158015906106ae5750826001600160a01b0316846001600160a01b03161480610f025750610f0284846106b6565b806106ae5750505f908152600460205260409020546001600160a01b03908116911614919050565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610f685772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610f94576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610fb257662386f26fc10000830492506010015b6305f5e1008310610fca576305f5e100830492506008015b6127108310610fde57612710830492506004015b60648310610ff0576064830492506002015b600a83106102d45760010192915050565b6001600160e01b03198116811461071d575f80fd5b5f60208284031215611026575f80fd5b8135610cca81611001565b5f5b8381101561104b578181015183820152602001611033565b50505f910152565b5f815180845261106a816020860160208601611031565b601f01601f19169290920160200192915050565b602081525f610cca6020830184611053565b5f602082840312156110a0575f80fd5b5035919050565b80356001600160a01b03811681146110bd575f80fd5b919050565b5f80604083850312156110d3575f80fd5b6110dc836110a7565b946020939093013593505050565b5f805f606084860312156110fc575f80fd5b611105846110a7565b9250611113602085016110a7565b9150604084013590509250925092565b634e487b7160e01b5f52604160045260245ffd5b5f67ffffffffffffffff8084111561115157611151611123565b604051601f8501601f19908116603f0116810190828211818310171561117957611179611123565b81604052809350858152868686011115611191575f80fd5b858560208301375f602087830101525050509392505050565b5f602082840312156111ba575f80fd5b813567ffffffffffffffff8111156111d0575f80fd5b8201601f810184136111e0575f80fd5b6106ae84823560208401611137565b5f602082840312156111ff575f80fd5b610cca826110a7565b5f8060408385031215611219575f80fd5b611222836110a7565b915060208301358015158114611236575f80fd5b809150509250929050565b5f805f8060808587031215611254575f80fd5b61125d856110a7565b935061126b602086016110a7565b925060408501359150606085013567ffffffffffffffff81111561128d575f80fd5b8501601f8101871361129d575f80fd5b6112ac87823560208401611137565b91505092959194509250565b5f80604083850312156112c9575f80fd5b6112d2836110a7565b91506112e0602084016110a7565b90509250929050565b600181811c908216806112fd57607f821691505b60208210810361131b57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156104e4575f81815260208120601f850160051c810160208610156113475750805b601f850160051c820191505b81811015610c5757828155600101611353565b815167ffffffffffffffff81111561138057611380611123565b6113948161138e84546112e9565b84611321565b602080601f8311600181146113c7575f84156113b05750858301515b5f19600386901b1c1916600185901b178555610c57565b5f85815260208120601f198616915b828110156113f5578886015182559484019460019091019084016113d6565b508582101561141257878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f815461142e816112e9565b60018281168015611446576001811461145b57611487565b60ff1984168752821515830287019450611487565b855f526020805f205f5b8581101561147e5781548a820152908401908201611465565b50505082870194505b5050505092915050565b66697066733a2f2f60c81b81525f6114ac6007830186611422565b602f60f81b815284516114c6816001840160208901611031565b6114d560018284010186611422565b979650505050505050565b5f83516114f1818460208801611031565b835190830190611505818360208801611031565b01949350505050565b634e487b7160e01b5f52601260045260245ffd5b5f826115305761153061150e565b500690565b634e487b7160e01b5f52601160045260245ffd5b808201808211156102d4576102d4611535565b818103818111156102d4576102d4611535565b634e487b7160e01b5f52603260045260245ffd5b5f826115915761159161150e565b500490565b5f816115a4576115a4611535565b505f190190565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f906115dd90830184611053565b9695505050505050565b5f602082840312156115f7575f80fd5b8151610cca8161100156fea2646970667358221220dd0c1ad47e6496c08e37b521f56b2e559aaef9a22af1ed3d333b45e2a912264a64736f6c63430008140033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000001144756d6d792044756d6d793120436c7562000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000844554d4d594e4654000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003b626166796265696171797671706a32666d736f346e736f356d71756f68637471336b727872356665676f6e777977367765626673667169726d7379000000000000000000000000000000000000000000000000000000000000000000000000115f5a4f52415f44554d4d59312e6a736f6e000000000000000000000000000000