60a060405234801561000f575f80fd5b50604051610ddb380380610ddb83398101604081905261002e916101f6565b8282600461003c83826102e0565b50600561004982826102e0565b505050600381905533608081905261006d906b204fce5e3e25026110000000610075565b5050506103c4565b6001600160a01b0382166100cf5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f8282546100e0919061039f565b90915550506001600160a01b0382165f908152602081905260408120805483929061010c90849061039f565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011261017d575f80fd5b81516001600160401b03808211156101975761019761015a565b604051601f8301601f19908116603f011681019082821181831017156101bf576101bf61015a565b816040528381528660208588010111156101d7575f80fd5b8360208701602083015e5f602085830101528094505050505092915050565b5f805f60608486031215610208575f80fd5b83516001600160401b038082111561021e575f80fd5b61022a8783880161016e565b9450602086015191508082111561023f575f80fd5b5061024c8682870161016e565b925050604084015190509250925092565b600181811c9082168061027157607f821691505b60208210810361028f57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561015557805f5260205f20601f840160051c810160208510156102ba5750805b601f840160051c820191505b818110156102d9575f81556001016102c6565b5050505050565b81516001600160401b038111156102f9576102f961015a565b61030d81610307845461025d565b84610295565b602080601f831160018114610340575f84156103295750858301515b5f19600386901b1c1916600185901b178555610397565b5f85815260208120601f198616915b8281101561036e5788860151825594840194600190910190840161034f565b508582101561038b57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b808201808211156103be57634e487b7160e01b5f52601160045260245ffd5b92915050565b6080516109ff6103dc5f395f61038201526109ff5ff3fe608060405234801561000f575f80fd5b50600436106100b1575f3560e01c806370a082311161006e57806370a082311461013d5780637f8ec6691461016557806395d89b411461017a578063a457c2d714610182578063a9059cbb14610195578063dd62ed3e146101a8575f80fd5b806306fdde03146100b5578063095ea7b3146100d357806318160ddd146100f657806323b872dd14610108578063313ce5671461011b578063395093511461012a575b5f80fd5b6100bd6101e0565b6040516100ca9190610835565b60405180910390f35b6100e66100e1366004610885565b610270565b60405190151581526020016100ca565b6002545b6040519081526020016100ca565b6100e66101163660046108ad565b610286565b604051601281526020016100ca565b6100e6610138366004610885565b61033a565b6100fa61014b3660046108e6565b6001600160a01b03165f9081526020819052604090205490565b610178610173366004610906565b610370565b005b6100bd6103ab565b6100e6610190366004610885565b6103ba565b6100e66101a3366004610885565b610454565b6100fa6101b6366004610926565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6060600480546101ef90610957565b80601f016020809104026020016040519081016040528092919081815260200182805461021b90610957565b80156102665780601f1061023d57610100808354040283529160200191610266565b820191905f5260205f20905b81548152906001019060200180831161024957829003601f168201915b5050505050905090565b5f61027c338484610460565b5060015b92915050565b5f610292848484610583565b6001600160a01b0384165f9081526001602090815260408083203384529091529020548281101561031b5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61032f853361032a86856109a3565b610460565b506001949350505050565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909161027c91859061032a9086906109b6565b806003541461037d575f80fd5b6103a77f000000000000000000000000000000000000000000000000000000000000000083610759565b5050565b6060600580546101ef90610957565b335f9081526001602090815260408083206001600160a01b03861684529091528120548281101561043b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610312565b61044a338561032a86856109a3565b5060019392505050565b5f61027c338484610583565b6001600160a01b0383166104c25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610312565b6001600160a01b0382166105235760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610312565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166105e75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610312565b6001600160a01b0382166106495760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610312565b6001600160a01b0383165f90815260208190526040902054818110156106c05760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610312565b6106ca82826109a3565b6001600160a01b038086165f9081526020819052604080822093909355908516815290812080548492906106ff9084906109b6565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161074b91815260200190565b60405180910390a350505050565b6001600160a01b0382166107af5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610312565b8060025f8282546107c091906109b6565b90915550506001600160a01b0382165f90815260208190526040812080548392906107ec9084906109b6565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114610880575f80fd5b919050565b5f8060408385031215610896575f80fd5b61089f8361086a565b946020939093013593505050565b5f805f606084860312156108bf575f80fd5b6108c88461086a565b92506108d66020850161086a565b9150604084013590509250925092565b5f602082840312156108f6575f80fd5b6108ff8261086a565b9392505050565b5f8060408385031215610917575f80fd5b50508035926020909101359150565b5f8060408385031215610937575f80fd5b6109408361086a565b915061094e6020840161086a565b90509250929050565b600181811c9082168061096b57607f821691505b60208210810361098957634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156102805761028061098f565b808201808211156102805761028061098f56fea264697066735822122083755f736982b0a490d00853bfe9046d214e4e72178837f31641e14d50f4fa6364736f6c63430008190033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000021e5b88000000000000000000000000000000000000000000000000000000000000000e576f726d686f6c6520546f6b656e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000015700000000000000000000000000000000000000000000000000000000000000