60806040526009805460ff1916905569d3c21bcecceda1000000600b5534801562000028575f80fd5b506040518060400160405280600c81526020016b14da5b5c1b1a599e480ccc4d60a21b81525060405180604001604052806004815260200163053494d560e41b815250600b5482600490816200007f9190620001f7565b5060056200008e8382620001f7565b506001819055620000a160c882620002c3565b600255600680546001600160a01b031916331790556007805462ff00ff60a01b1916600160b01b179055620000d8600a82620002c3565b335f908152602081905260409020819055600290620000f89083620002e3565b620001049190620002c3565b6008819055335f908152602081905260408120549091620001269084620002e3565b620001329190620002e3565b305f9081526020819052604090205550506007805460ff60a81b1916905550620003099050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200018257607f821691505b602082108103620001a157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620001f257805f5260205f20601f840160051c81016020851015620001ce5750805b601f840160051c820191505b81811015620001ef575f8155600101620001da565b50505b505050565b81516001600160401b0381111562000213576200021362000159565b6200022b816200022484546200016d565b84620001a7565b602080601f83116001811462000261575f8415620002495750858301515b5f19600386901b1c1916600185901b178555620002bb565b5f85815260208120601f198616915b82811015620002915788860151825594840194600190910190840162000270565b5085821015620002af57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f82620002de57634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156200030357634e487b7160e01b5f52601160045260245ffd5b92915050565b6112ac80620003175f395ff3fe60806040526004361061014a575f3560e01c806367b9a286116100b357806395d89b411161006d57806395d89b41146103d45780639a540abf146103e8578063a9059cbb146103fb578063ae19139e1461041a578063d944392314610439578063f275f64b14610459575f80fd5b806367b9a2861461032b57806370a082311461033f578063715018a6146103735780637ec18cf61461038757806382247ec0146103a05780638da5cb5b146103b5575f80fd5b806318160ddd1161010457806318160ddd1461026857806327de2e851461027c578063313ce5671461029b5780635b8bec55146102b65780635d0044ca146102ed57806365029d821461030c575f80fd5b806304c0c4761461015d57806306fdde03146101935780630902f1ac146101b457806311106ee2146101eb57806312a54b62146102185780631693e8d414610248575f80fd5b3661015957610157610478565b005b5f80fd5b348015610168575f80fd5b506003546101799063ffffffff1681565b60405163ffffffff90911681526020015b60405180910390f35b34801561019e575f80fd5b506101a76105bc565b60405161018a9190610f47565b3480156101bf575f80fd5b506101d6305f908152602081905260409020544791565b6040805192835260208301919091520161018a565b3480156101f6575f80fd5b5061020a610205366004610fa7565b61064c565b60405190815260200161018a565b348015610223575f80fd5b5060075461023890600160b01b900460ff1681565b604051901515815260200161018a565b348015610253575f80fd5b5060075461023890600160a01b900460ff1681565b348015610273575f80fd5b5060015461020a565b348015610287575f80fd5b50610157610296366004610fd1565b6106b0565b3480156102a6575f80fd5b506040516012815260200161018a565b3480156102c1575f80fd5b506007546102d5906001600160a01b031681565b6040516001600160a01b03909116815260200161018a565b3480156102f8575f80fd5b50610157610307366004610ffb565b610750565b348015610317575f80fd5b5061015761032636600461103c565b61077f565b348015610336575f80fd5b50610157610882565b34801561034a575f80fd5b5061020a6103593660046110fc565b6001600160a01b03165f9081526020819052604090205490565b34801561037e575f80fd5b50610157610962565b348015610392575f80fd5b506009546102389060ff1681565b3480156103ab575f80fd5b5061020a60025481565b3480156103c0575f80fd5b506006546102d5906001600160a01b031681565b3480156103df575f80fd5b506101a761099e565b6101576103f6366004610fd1565b6109ad565b348015610406575f80fd5b50610238610415366004611115565b610b37565b348015610425575f80fd5b5061015761043436600461113d565b610b6a565b348015610444575f80fd5b5060075461023890600160a81b900460ff1681565b348015610464575f80fd5b5061015761047336600461113d565b610bb2565b600754600160a01b900460ff166104cb5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f7420656e61626c6560701b60448201526064015b60405180910390fd5b305f9081526020819052604081205447906104e6903461116a565b6104f09190611181565b600754909150600160b01b900460ff161561056557600254335f9081526020819052604090205461052190836111a0565b11156105655760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016104c2565b610570303383610bfa565b604080513481525f602082018190528183015260608101839052905133917f49926bbebe8474393f434dfa4f78694c0923efa07d19f2284518bfabd06eb737919081900360800190a250565b6060600480546105cb906111b3565b80601f01602080910402602001604051908101604052809291908181526020018280546105f7906111b3565b80156106425780601f1061061957610100808354040283529160200191610642565b820191905f5260205f20905b81548152906001019060200180831161062557829003601f168201915b5050505050905090565b5f805f610665305f908152602081905260409020544791565b9150915083156106965761067985836111a0565b610683828761116a565b61068d9190611181565b925050506106aa565b6106a085826111a0565b610683838761116a565b92915050565b6007546001600160a01b031633146106da5760405162461bcd60e51b81526004016104c2906111eb565b60035463ffffffff8083169116106107345760405162461bcd60e51b815260206004820152601a60248201527f596f752063616e27742073686f7274656e206475726174696f6e00000000000060448201526064016104c2565b6003805463ffffffff191663ffffffff92909216919091179055565b6006546001600160a01b0316331461077a5760405162461bcd60e51b81526004016104c29061122d565b600255565b6006546001600160a01b031633146107a95760405162461bcd60e51b81526004016104c29061122d565b60095460ff16156107fc5760405162461bcd60e51b815260206004820152601760248201527f50726573616c6520616c726561647920656e61626c656400000000000000000060448201526064016104c2565b5f815160085461080c9190611181565b90505f5b825181101561087057815f8085848151811061082e5761082e611262565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f82825461086391906111a0565b9091555050600101610810565b50506009805460ff1916600117905550565b6007546001600160a01b031633146108ac5760405162461bcd60e51b81526004016104c2906111eb565b60035463ffffffff1643116108f65760405162461bcd60e51b815260206004820152601060248201526f131a5c5d5a591a5d1e481b1bd8dad95960821b60448201526064016104c2565b6007805460ff60a01b1916905560405133904780156108fc02915f818181858888f1935050505015801561092c573d5f803e3d5ffd5b506040514781527f9a5a8a32afd899e7f95003c6e21c9fab2d50e11992439d14472229180c60c7aa9060200160405180910390a1565b6006546001600160a01b0316331461098c5760405162461bcd60e51b81526004016104c29061122d565b600680546001600160a01b0319169055565b6060600580546105cb906111b3565b6006546001600160a01b031633146109d75760405162461bcd60e51b81526004016104c29061122d565b600754600160a81b900460ff1615610a315760405162461bcd60e51b815260206004820152601760248201527f4c697175696469747920616c726561647920616464656400000000000000000060448201526064016104c2565b6007805460ff60a81b1916600160a81b17905534610a7f5760405162461bcd60e51b815260206004820152600b60248201526a139bc8115512081cd95b9d60aa1b60448201526064016104c2565b8063ffffffff164310610acb5760405162461bcd60e51b8152602060048201526014602482015273426c6f636b206e756d62657220746f6f206c6f7760601b60448201526064016104c2565b6003805463ffffffff831663ffffffff199091168117909155600780546001600160a81b0319163317600160a01b179055604080519182523460208301527f0c6c8102f3ac634c5fb327ba1a5d5c18030294d9f5cc309afa9e8a9020a77175910160405180910390a150565b5f306001600160a01b03841603610b5657610b5182610db1565b610b61565b610b61338484610bfa565b50600192915050565b6006546001600160a01b03163314610b945760405162461bcd60e51b81526004016104c29061122d565b60078054911515600160b01b0260ff60b01b19909216919091179055565b6006546001600160a01b03163314610bdc5760405162461bcd60e51b81526004016104c29061122d565b60078054911515600160a01b0260ff60a01b19909216919091179055565b335f908152600a60205260409020544363ffffffff90911603610c795760405162461bcd60e51b815260206004820152603160248201527f596f752063616e2774206d616b652074776f207472616e73616374696f6e7320604482015270696e207468652073616d6520626c6f636b60781b60648201526084016104c2565b335f908152600a60209081526040808320805463ffffffff19164363ffffffff161790556001600160a01b038616835290829052902054811115610d0e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016104c2565b6001600160a01b038084165f908152602081905260409020805483900390558216610d4157600180548290039055610d5f565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610da491815260200190565b60405180910390a3505050565b600754600160a01b900460ff16610dff5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f7420656e61626c6560701b60448201526064016104c2565b305f90815260208190526040812054610e199083906111a0565b610e23478461116a565b610e2d9190611181565b90505f8111610e745760405162461bcd60e51b815260206004820152601360248201527253656c6c20616d6f756e7420746f6f206c6f7760681b60448201526064016104c2565b80471015610ec45760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e742045544820696e2072657365727665730000000060448201526064016104c2565b610ecf333084610bfa565b604051339082156108fc029083905f818181858888f19350505050158015610ef9573d5f803e3d5ffd5b50604080515f808252602082018590528183018490526060820152905133917f49926bbebe8474393f434dfa4f78694c0923efa07d19f2284518bfabd06eb737919081900360800190a25050565b5f602080835283518060208501525f5b81811015610f7357858101830151858201604001528201610f57565b505f604082860101526040601f19601f8301168501019250505092915050565b80358015158114610fa2575f80fd5b919050565b5f8060408385031215610fb8575f80fd5b82359150610fc860208401610f93565b90509250929050565b5f60208284031215610fe1575f80fd5b813563ffffffff81168114610ff4575f80fd5b9392505050565b5f6020828403121561100b575f80fd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b80356001600160a01b0381168114610fa2575f80fd5b5f602080838503121561104d575f80fd5b823567ffffffffffffffff80821115611064575f80fd5b818501915085601f830112611077575f80fd5b81358181111561108957611089611012565b8060051b604051601f19603f830116810181811085821117156110ae576110ae611012565b6040529182528482019250838101850191888311156110cb575f80fd5b938501935b828510156110f0576110e185611026565b845293850193928501926110d0565b98975050505050505050565b5f6020828403121561110c575f80fd5b610ff482611026565b5f8060408385031215611126575f80fd5b61112f83611026565b946020939093013593505050565b5f6020828403121561114d575f80fd5b610ff482610f93565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176106aa576106aa611156565b5f8261119b57634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156106aa576106aa611156565b600181811c908216806111c757607f821691505b6020821081036111e557634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526022908201527f596f7520617265206e6f7420746865206c69717569646974792070726f76696460408201526132b960f11b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffdfea26469706673582212203ddf57b15eb5ca635035b6b44f183993ce78f5910a0af40f04c3012d80c61acb64736f6c63430008180033