0x608060405234801561000f575f80fd5b5061001861001d565b6100cf565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161561006d5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100cc5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6109f6806100dc5f395ff3fe608060405234801561000f575f80fd5b50600436106100a6575f3560e01c8063481286e61161006e578063481286e61461012e57806391d1485414610159578063a217fddf1461016c578063c4d66de814610173578063d547741f14610186578063ecd0026114610199575f80fd5b806301ffc9a7146100aa57806319cdeff1146100d2578063248a9ca3146100e75780632f2ff15d1461010857806336568abe1461011b575b5f80fd5b6100bd6100b83660046107b3565b6101c0565b60405190151581526020015b60405180910390f35b6100e56100e0366004610877565b6101f6565b005b6100fa6100f53660046108df565b610328565b6040519081526020016100c9565b6100e5610116366004610911565b610348565b6100e5610129366004610911565b61036a565b61014161013c36600461093b565b6103a2565b6040516001600160a01b0390911681526020016100c9565b6100bd610167366004610911565b6103b4565b6100fa5f81565b6100e561018136600461095b565b6103ea565b6100e5610194366004610911565b61052d565b6100fa7ffc425f2263d0df187444b70e47283d622c70181c5baebb1306a01edba1ce184c81565b5f6001600160e01b03198216637965db0b60e01b14806101f057506301ffc9a760e01b6001600160e01b03198316145b92915050565b7ffc425f2263d0df187444b70e47283d622c70181c5baebb1306a01edba1ce184c61022081610549565b5f61022c5f8686610556565b604080516001600160a01b0383168152602081018890529192507f94bfd9af14ef450884c8a7ddb5734e2e1e14e70a1c84f0801cc5a29e34d26428910160405180910390a1825115610321575f80826001600160a01b0316856040516102929190610974565b5f604051808303815f865af19150503d805f81146102cb576040519150601f19603f3d011682016040523d82523d5f602084013e6102d0565b606091505b50915091508161031e5760405162461bcd60e51b81526020600482015260146024820152734661696c656420746f20696e697469616c697a6560601b60448201526064015b60405180910390fd5b50505b5050505050565b5f9081525f805160206109a1833981519152602052604090206001015490565b61035182610328565b61035a81610549565b61036483836105d4565b50505050565b6001600160a01b03811633146103935760405163334bd91960e11b815260040160405180910390fd5b61039d8282610675565b505050565b5f6103ad83836106ee565b9392505050565b5f9182525f805160206109a1833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f8115801561042f5750825b90505f8267ffffffffffffffff16600114801561044b5750303b155b905081158015610459575080155b156104775760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156104a157845460ff60401b1916600160401b1785555b6104a96106fa565b6104b35f876105d4565b506104de7ffc425f2263d0df187444b70e47283d622c70181c5baebb1306a01edba1ce184c876105d4565b50831561052557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b61053682610328565b61053f81610549565b6103648383610675565b6105538133610704565b50565b5f834710156105815760405163392efb2b60e21b815247600482015260248101859052604401610315565b81515f036105a257604051631328927760e21b815260040160405180910390fd5b8282516020840186f590506001600160a01b0381166103ad57604051633a0ba96160e11b815260040160405180910390fd5b5f5f805160206109a18339815191526105ed84846103b4565b61066c575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556106223390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506101f0565b5f9150506101f0565b5f5f805160206109a183398151915261068e84846103b4565b1561066c575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506101f0565b5f6103ad838330610741565b61070261076a565b565b61070e82826103b4565b61073d5760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610315565b5050565b5f604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661070257604051631afcd79f60e31b815260040160405180910390fd5b5f602082840312156107c3575f80fd5b81356001600160e01b0319811681146103ad575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126107fd575f80fd5b813567ffffffffffffffff80821115610818576108186107da565b604051601f8301601f19908116603f01168101908282118183101715610840576108406107da565b81604052838152866020858801011115610858575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f60608486031215610889575f80fd5b83359250602084013567ffffffffffffffff808211156108a7575f80fd5b6108b3878388016107ee565b935060408601359150808211156108c8575f80fd5b506108d5868287016107ee565b9150509250925092565b5f602082840312156108ef575f80fd5b5035919050565b80356001600160a01b038116811461090c575f80fd5b919050565b5f8060408385031215610922575f80fd5b82359150610932602084016108f6565b90509250929050565b5f806040838503121561094c575f80fd5b50508035926020909101359150565b5f6020828403121561096b575f80fd5b6103ad826108f6565b5f82515f5b818110156109935760208186018101518583015201610979565b505f92019182525091905056fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a2646970667358221220011d759cfee63986b555634fcf0808474899429ed1024ecb067acbd835ae663f64736f6c63430008160033