0x60806040525f805460ff60a01b1916600160a01b179055348015610021575f80fd5b506040518060400160405280600c81526020016b72653a67656e65726174657360a01b8152506040518060400160405280600681526020016539329d33b2b760d11b81525081600490816100759190610271565b5060056100828282610271565b50505f80546001600160a01b03191633179055506100a56100a03390565b6100c1565b6100bc336c1a8177494efa5bf39f20000000610112565b610355565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b03821661016c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060035f82825461017d9190610330565b90915550506001600160a01b0382165f818152600160209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061020257607f821691505b60208210810361022057634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156101d557805f5260205f20601f840160051c8101602085101561024b5750805b601f840160051c820191505b8181101561026a575f8155600101610257565b5050505050565b81516001600160401b0381111561028a5761028a6101da565b61029e8161029884546101ee565b84610226565b602080601f8311600181146102d1575f84156102ba5750858301515b5f19600386901b1c1916600185901b178555610328565b5f85815260208120601f198616915b828110156102ff578886015182559484019460019091019084016102e0565b508582101561031c57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b8082018082111561034f57634e487b7160e01b5f52601160045260245ffd5b92915050565b610e76806103625f395ff3fe608060405234801561000f575f80fd5b50600436106101d1575f3560e01c80638026c4a9116100fe578063b1d17c981161009e578063dd62ed3e1161006e578063dd62ed3e14610388578063f2fde38b1461039b578063f3510f9a146102a0578063f374b692146102a0575f80fd5b8063b1d17c9814610364578063c9dd88fe14610377578063d02d18aa146102a0578063d26033e114610380575f80fd5b806391cca3db116100d957806391cca3db1461032457806395d89b4114610336578063a457c2d71461033e578063a9059cbb14610351575f80fd5b80638026c4a9146102a0578063832fc9b5146102a05780638da5cb5b146102ff575f80fd5b8063335e04831161017457806362a4e2251161014457806362a4e225146102a057806370a08231146102b1578063781fa704146102d957806379cc6790146102ec575f80fd5b8063335e048314610272578063395093511461027a57806342966c681461028d5780635c0fede4146102a0575f80fd5b806318160ddd116101af57806318160ddd1461022b57806323b872dd1461023d5780632757805514610250578063313ce56714610263575f80fd5b806306fdde03146101d5578063095ea7b3146101f35780630deef63a14610216575b5f80fd5b6101dd6103ae565b6040516101ea9190610c11565b60405180910390f35b610206610201366004610c61565b61043e565b60405190151581526020016101ea565b610229610224366004610c89565b610457565b005b6003545b6040519081526020016101ea565b61020661024b366004610ca9565b61045f565b5f5461020690600160a01b900460ff1681565b604051601281526020016101ea565b610229610482565b610206610288366004610c61565b610495565b61022961029b366004610ce2565b6104b6565b6102296102ae366004610d0d565b50565b61022f6102bf366004610c89565b6001600160a01b03165f9081526001602052604090205490565b6102296102e7366004610ce2565b600655565b6102296102fa366004610c61565b6104c0565b6007546001600160a01b03165b6040516001600160a01b0390911681526020016101ea565b5f5461030c906001600160a01b031681565b6101dd6104d9565b61020661034c366004610c61565b6104e8565b61020661035f366004610c61565b610567565b610229610372366004610c89565b610574565b61022f60065481565b6102296105f2565b61022f610396366004610db8565b610615565b6102296103a9366004610c89565b61063f565b6060600480546103bd90610de9565b80601f01602080910402602001604051908101604052809291908181526020018280546103e990610de9565b80156104345780601f1061040b57610100808354040283529160200191610434565b820191905f5260205f20905b81548152906001019060200180831161041757829003601f168201915b5050505050905090565b5f3361044b8185856106b5565b60019150505b92915050565b6102ae6107d9565b5f3361046c858285610833565b6104778585856108ab565b506001949350505050565b61048a6107d9565b6104935f610a96565b565b5f3361044b8185856104a78383610615565b6104b19190610e21565b6106b5565b6102ae3382610ae7565b6104cb823383610833565b6104d58282610ae7565b5050565b6060600580546103bd90610de9565b5f33816104f58286610615565b90508381101561055a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61047782868684036106b5565b5f3361044b8185856108ab565b61057c6107d9565b335f908152600160205260409020546c1a8177494efa5bf39f2000000081146105e75760405162461bcd60e51b815260206004820152601a60248201527f546f6b656e7320616c72656164792064697374726962757465640000000000006044820152606401610551565b6104d53383836108ab565b5f546001600160a01b03163314610607575f80fd5b5f805460ff60a01b19169055565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b6106476107d9565b6001600160a01b0381166106ac5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610551565b6102ae81610a96565b6001600160a01b0383166107175760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610551565b6001600160a01b0382166107785760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610551565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6007546001600160a01b031633146104935760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610551565b5f61083e8484610615565b90505f1981146108a557818110156108985760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610551565b6108a584848484036106b5565b50505050565b6001600160a01b03831661090f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610551565b6001600160a01b0382166109715760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610551565b5f54600160a01b900460ff16801561099657505f546001600160a01b03848116911614155b156109b3576b01d5c180a22e173e9a1c00008111156109b3575f80fd5b6001600160a01b0383165f9081526001602052604090205481811015610a2a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610551565b6001600160a01b038085165f8181526001602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a899086815260200190565b60405180910390a36108a5565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038216610b475760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610551565b6001600160a01b0382165f9081526001602052604090205481811015610bba5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610551565b6001600160a01b0383165f8181526001602090815260408083208686039055600380548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016107cc565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114610c5c575f80fd5b919050565b5f8060408385031215610c72575f80fd5b610c7b83610c46565b946020939093013593505050565b5f60208284031215610c99575f80fd5b610ca282610c46565b9392505050565b5f805f60608486031215610cbb575f80fd5b610cc484610c46565b9250610cd260208501610c46565b9150604084013590509250925092565b5f60208284031215610cf2575f80fd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b5f60208284031215610d1d575f80fd5b813567ffffffffffffffff80821115610d34575f80fd5b818401915084601f830112610d47575f80fd5b813581811115610d5957610d59610cf9565b604051601f8201601f19908116603f01168101908382118183101715610d8157610d81610cf9565b81604052828152876020848701011115610d99575f80fd5b826020860160208301375f928101602001929092525095945050505050565b5f8060408385031215610dc9575f80fd5b610dd283610c46565b9150610de060208401610c46565b90509250929050565b600181811c90821680610dfd57607f821691505b602082108103610e1b57634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561045157634e487b7160e01b5f52601160045260245ffdfea2646970667358221220eb8cbefbf993e0bc57154245378c0c6097de789ddd6a9bdc1bb745f5813ecf4a64736f6c63430008190033