Returned Raw Transaction Hex :
0x02f9596201808459682f00850424c6ba11834873448080b95908608060405234801561001057600080fd5b5060405161580838038061580883398101604081905261002f91610422565b6000816000604051610040906103ec565b60a08082526006908201526513d1cb90549560d21b60c082015260e060208201819052600290820152614f4760f01b610100820152610120604082018190526000908201526001600160401b03909216606083015263ffffffff16608082015261014001604051809103906000f0801580156100c0573d6000803e3d6000fd5b5090506000858585848c60006040516100d8906103f9565b958652602086019490945263ffffffff90921660408501526001600160a01b03908116606085015290811660808401521660a082015261010060c08201819052600b908201526a4f4720506c6174666f726d60a81b61012082015261014060e08201819052600190820152603160f81b61016082015261018001604051809103906000f08015801561016e573d6000803e3d6000fd5b50604051634c1d96ab60e11b81526001600160a01b0380831660048301529192509083169063983b2d5690602401600060405180830381600087803b1580156101b657600080fd5b505af11580156101ca573d6000803e3d6000fd5b505060405163ce3cd99760e01b81526001600160a01b038416925063ce3cd99791506101fb906000906004016104c4565b600060405180830381600087803b15801561021557600080fd5b505af1158015610229573d6000803e3d6000fd5b5050604051634c1d96ab60e11b81526001600160a01b038b811660048301528416925063983b2d569150602401600060405180830381600087803b15801561027057600080fd5b505af1158015610284573d6000803e3d6000fd5b50506040516375896b0f60e11b81526001600160a01b038a811660048301528416925063eb12d61e9150602401600060405180830381600087803b1580156102cb57600080fd5b505af11580156102df573d6000803e3d6000fd5b5050604051633825b60160e11b81526001600160a01b038d811660048301528516925063704b6c029150602401600060405180830381600087803b15801561032657600080fd5b505af115801561033a573d6000803e3d6000fd5b5050604051633825b60160e11b81526001600160a01b038d811660048301528416925063704b6c029150602401600060405180830381600087803b15801561038157600080fd5b505af1158015610395573d6000803e3d6000fd5b5050604080516001600160a01b038087168252851660208201527f348d635f38173d90a1f4f8b3d24b2ad0d2463e07d063f6a9b5dbb9d25ada8c5e935001905060405180910390a1505050505050505050506104ec565b6127468061053983390190565b612b8980612c7f83390190565b80516001600160a01b038116811461041d57600080fd5b919050565b600080600080600080600080610100898b03121561043e578384fd5b61044789610406565b975061045560208a01610406565b965061046360408a01610406565b955061047160608a01610406565b94506080890151935060a0890151925060c089015163ffffffff81168114610497578283fd5b60e08a01519092506001600160401b03811681146104b3578182fd5b809150509295985092959890939650565b60208101600383106104e657634e487b7160e01b600052602160045260246000fd5b91905290565b603f806104fa6000396000f3fe6080604052600080fdfea2646970667358221220964cc2ab89c5c37387db71049edbc4922bcad7bb0d54da12c93cede0c2407e6c64736f6c6343000804003360806040523480156200001157600080fd5b5060405162002746380380620027468339810160408190526200003491620002df565b8451859085906200004d90600290602085019062000186565b5080516200006390600390602084019062000186565b505060008080556008805460ff1916905562000081915033620000d2565b600b80546801000000000000000063ffffffff8416026001600160801b03199091166001600160401b038516171790558251620000c690600a90602086019062000186565b505050505050620003f7565b620000de8282620000e2565b5050565b60008281526009602090815260408083206001600160a01b038516845290915290205460ff16620000de5760008281526009602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620001423390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b8280546200019490620003a4565b90600052602060002090601f016020900481019282620001b8576000855562000203565b82601f10620001d357805160ff191683800117855562000203565b8280016001018555821562000203579182015b8281111562000203578251825591602001919060010190620001e6565b506200021192915062000215565b5090565b5b8082111562000211576000815560010162000216565b600082601f8301126200023d578081fd5b81516001600160401b03808211156200025a576200025a620003e1565b604051601f8301601f19908116603f01168101908282118183101715620002855762000285620003e1565b81604052838152602092508683858801011115620002a1578485fd5b8491505b83821015620002c45785820183015181830184015290820190620002a5565b83821115620002d557848385830101525b9695505050505050565b600080600080600060a08688031215620002f7578081fd5b85516001600160401b03808211156200030e578283fd5b6200031c89838a016200022c565b9650602088015191508082111562000332578283fd5b6200034089838a016200022c565b9550604088015191508082111562000356578283fd5b6200036489838a016200022c565b94506060880151915080821682146200037b578283fd5b50608087015190925063ffffffff8116811462000396578182fd5b809150509295509295909350565b600181811c90821680620003b957607f821691505b60208210811415620003db57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b61233f80620004076000396000f3fe608060405234801561001057600080fd5b506004361061021c5760003560e01c80638456cb5911610125578063c87b56dd116100ad578063d67ea9311161007c578063d67ea931146104b1578063d6d520b5146104c4578063e985e9c5146104d7578063f7b188a514610513578063fe23245a1461051b57600080fd5b8063c87b56dd1461044a578063cbcb31711461045d578063d539139314610477578063d547741f1461049e57600080fd5b8063983b2d56116100f4578063983b2d56146103f6578063a217fddf14610409578063a22cb46514610411578063b88d4fde14610424578063badb97ff1461043757600080fd5b80638456cb59146103c0578063881a37c6146103c857806391d14854146103db57806395d89b41146103ee57600080fd5b806342842e0e116101a85780636352211e116101775780636352211e146103545780636c0360eb14610367578063704b6c021461036f57806370a08231146103825780637e1c0c091461039557600080fd5b806342842e0e1461031057806342966c681461032357806355f804b3146103365780635c975abb1461034957600080fd5b806318160ddd116101ef57806318160ddd1461029e57806323b872dd146102b4578063248a9ca3146102c75780632f2ff15d146102ea57806336568abe146102fd57600080fd5b806301ffc9a71461022157806306fdde0314610249578063081812fc1461025e578063095ea7b314610289575b600080fd5b61023461022f366004611f46565b61052e565b60405190151581526020015b60405180910390f35b61025161053f565b6040516102409190612147565b61027161026c366004611f0c565b6105d1565b6040516001600160a01b039091168152602001610240565b61029c610297366004611e5f565b610615565b005b600154600054035b604051908152602001610240565b61029c6102c2366004611d16565b6106a3565b6102a66102d5366004611f0c565b60009081526009602052604090206001015490565b61029c6102f8366004611f24565b6106ae565b61029c61030b366004611f24565b6106d4565b61029c61031e366004611d16565b610757565b61029c610331366004611f0c565b610772565b61029c610344366004611f7e565b610780565b60085460ff16610234565b610271610362366004611f0c565b6107d7565b6102516107e9565b61029c61037d366004611cca565b610877565b6102a6610390366004611cca565b6108df565b600b546103a8906001600160401b031681565b6040516001600160401b039091168152602001610240565b61029c61092d565b61029c6103d6366004611e88565b610941565b6102346103e9366004611f24565b610a17565b610251610a42565b61029c610404366004611cca565b610a51565b6102a6600081565b61029c61041f366004611e25565b610a87565b61029c610432366004611d51565b610b1d565b61029c610445366004611f0c565b610b6e565b610251610458366004611f0c565b610b83565b600b546103a890600160401b90046001600160401b031681565b6102a67f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b61029c6104ac366004611f24565b610c08565b61029c6104bf366004611fea565b610c2e565b61029c6104d2366004611fea565b610c9d565b6102346104e5366004611ce4565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b61029c610cf8565b61029c610529366004611e88565b610d0c565b600061053982610d7b565b92915050565b60606002805461054e90612227565b80601f016020809104026020016040519081016040528092919081815260200182805461057a90612227565b80156105c75780601f1061059c576101008083540402835291602001916105c7565b820191906000526020600020905b8154815290600101906020018083116105aa57829003601f168201915b5050505050905090565b60006105dc82610da0565b6105f9576040516333d1c03960e21b815260040160405180910390fd5b506000908152600660205260409020546001600160a01b031690565b6000610620826107d7565b9050806001600160a01b0316836001600160a01b031614156106555760405163250fdee360e21b815260040160405180910390fd5b336001600160a01b03821614801590610675575061067381336104e5565b155b15610693576040516367d9dca160e11b815260040160405180910390fd5b61069e838383610dcb565b505050565b61069e838383610e27565b6000828152600960205260409020600101546106ca8133611010565b61069e8383611074565b6001600160a01b03811633146107495760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61075382826110fa565b5050565b61069e83838360405180602001604052806000815250610b1d565b61077d816001611161565b50565b600061078c8133611010565b610798600a8484611c15565b507f8a274cdd629b9aae599b13d8bfee3ee4a15350b0386a9b64087a393db009376783836040516107ca929190612118565b60405180910390a1505050565b60006107e282611322565b5192915050565b600a80546107f690612227565b80601f016020809104026020016040519081016040528092919081815260200182805461082290612227565b801561086f5780601f106108445761010080835404028352916020019161086f565b820191906000526020600020905b81548152906001019060200180831161085257829003601f168201915b505050505081565b60006108838133611010565b6001600160a01b0382166108c95760405162461bcd60e51b815260206004820152600d60248201526c656d707479206164647265737360981b6044820152606401610740565b6108d4600083611074565b6107536000336110fa565b60006001600160a01b038216610908576040516323d3ad8160e21b815260040160405180910390fd5b506001600160a01b03166000908152600560205260409020546001600160401b031690565b60006109398133611010565b61077d61143c565b600061094d8133611010565b600061095c6001546000540390565b600b549091506001600160401b0316610975868361215a565b11156109b45760405162461bcd60e51b815260206004820152600e60248201526d1b9bc81cdd5c1c1b1e481b19599d60921b6044820152606401610740565b8483146109f85760405162461bcd60e51b81526020600482015260126024820152716e6f7420656e6f756768206f7074696f6e7360701b6044820152606401610740565b610a0286866114d4565b610a0f86828787876114ee565b505050505050565b60009182526009602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60606003805461054e90612227565b6000610a5d8133611010565b6107537f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a683611074565b6001600160a01b038216331415610ab15760405163b06307db60e01b815260040160405180910390fd5b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610b28848484610e27565b6001600160a01b0383163b15158015610b4a5750610b488484848461157e565b155b15610b68576040516368d2bf6b60e11b815260040160405180910390fd5b50505050565b6000610b7a8133611010565b61075382611676565b6060610b8e82610da0565b610bab57604051630a14c4b560e41b815260040160405180910390fd5b6000610bb5611681565b9050805160001415610bd65760405180602001604052806000815250610c01565b80610be084611690565b604051602001610bf192919061203d565b6040516020818303038152906040525b9392505050565b600082815260096020526040902060010154610c248133611010565b61069e83836110fa565b6000610c3a8133611010565b600b805467ffffffffffffffff60401b1916600160401b6001600160401b038516908102919091179091556040519081527ff2b698662aa2f458b8cc665061f374e1b45c19bbe360d2d563fe36d7c897e476906020015b60405180910390a15050565b6000610ca98133611010565b600b805467ffffffffffffffff19166001600160401b0384169081179091556040519081527f6a2edcb813ff44ec25c8b7c45a3852b6d1cfc0b00d989163adad43d5ecc5003090602001610c91565b6000610d048133611010565b61077d6117a9565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610d378133611010565b6000610d466001546000540390565b600b54909150610d68906001600160401b03600160401b8204811691166121bc565b6001600160401b0316610975868361215a565b60006001600160e01b03198216637965db0b60e01b1480610539575061053982611823565b6000805482108015610539575050600090815260046020526040902054600160e01b900460ff161590565b60008281526006602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6000610e3282611322565b9050836001600160a01b031681600001516001600160a01b031614610e695760405162a1148160e81b815260040160405180910390fd5b6000336001600160a01b0386161480610e875750610e8785336104e5565b80610ea2575033610e97846105d1565b6001600160a01b0316145b905080610ec257604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b038416610ee957604051633a954ecd60e21b815260040160405180910390fd5b610ef68585856001611873565b610f0260008487610dcb565b6001600160a01b038581166000908152600560209081526040808320805467ffffffffffffffff198082166001600160401b0392831660001901831617909255898616808652838620805493841693831660019081018416949094179055898652600490945282852080546001600160e01b031916909417600160a01b42909216919091021783558701808452922080549193909116610fd6576000548214610fd657805460208601516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b038a16171781555b50505082846001600160a01b0316866001600160a01b03166000805160206122ea83398151915260405160405180910390a45b5050505050565b61101a8282610a17565b61075357611032816001600160a01b03166014611878565b61103d836020611878565b60405160200161104e92919061206c565b60408051601f198184030181529082905262461bcd60e51b825261074091600401612147565b61107e8282610a17565b6107535760008281526009602090815260408083206001600160a01b03851684529091529020805460ff191660011790556110b63390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6111048282610a17565b156107535760008281526009602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600061116c83611322565b805190915082156111d2576000336001600160a01b0383161480611195575061119582336104e5565b806111b05750336111a5866105d1565b6001600160a01b0316145b9050806111d057604051632ce44b5f60e11b815260040160405180910390fd5b505b6111e0816000866001611873565b6111ec60008583610dcb565b6001600160a01b0380821660008181526005602090815260408083208054600160801b6000196001600160401b0380841691909101811667ffffffffffffffff198416811783900482166001908101831690930277ffffffffffffffff0000000000000000ffffffffffffffff19909416179290921783558b86526004909452828520805460ff60e01b1942909316600160a01b026001600160e01b03199091169097179690961716600160e01b1785559189018084529220805491949091166112ea5760005482146112ea57805460208701516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b038716171781555b5050604051869250600091506001600160a01b038416906000805160206122ea833981519152908390a4505060018054810190555050565b60408051606081018252600080825260208201819052918101919091528160005481101561142357600081815260046020908152604091829020825160608101845290546001600160a01b0381168252600160a01b81046001600160401b031692820192909252600160e01b90910460ff161515918101829052906114215780516001600160a01b0316156113b8579392505050565b5060001901600081815260046020908152604091829020825160608101845290546001600160a01b038116808352600160a01b82046001600160401b031693830193909352600160e01b900460ff161515928101929092521561141c579392505050565b6113b8565b505b604051636f96cda160e11b815260040160405180910390fd5b60085460ff16156114825760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610740565b6008805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586114b73390565b6040516001600160a01b03909116815260200160405180910390a1565b610753828260405180602001604052806000815250611a59565b60005b83811015610a0f57611503858261215a565b866001600160a01b03167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f85858581811061154e57634e487b7160e01b600052603260045260246000fd5b9050602002013560405161156491815260200190565b60405180910390a38061157681612262565b9150506114f1565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a02906115b39033908990889088906004016120db565b602060405180830381600087803b1580156115cd57600080fd5b505af19250505080156115fd575060408051601f3d908101601f191682019092526115fa91810190611f62565b60015b611658573d80801561162b576040519150601f19603f3d011682016040523d82523d6000602084013e611630565b606091505b508051611650576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490505b949350505050565b61077d816000611161565b6060600a805461054e90612227565b6060816116b45750506040805180820190915260018152600360fc1b602082015290565b8160005b81156116de57806116c881612262565b91506116d79050600a83612172565b91506116b8565b6000816001600160401b0381111561170657634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611730576020820181803683370190505b5090505b841561166e576117456001836121a5565b9150611752600a8661227d565b61175d90603061215a565b60f81b81838151811061178057634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053506117a2600a86612172565b9450611734565b60085460ff166117f25760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610740565b6008805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa336114b7565b60006001600160e01b031982166380ac58cd60e01b148061185457506001600160e01b03198216635b5e139f60e01b145b8061053957506301ffc9a760e01b6001600160e01b0319831614610539565b610b68565b60606000611887836002612186565b61189290600261215a565b6001600160401b038111156118b757634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156118e1576020820181803683370190505b509050600360fc1b8160008151811061190a57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061194757634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600061196b846002612186565b61197690600161215a565b90505b6001811115611a0a576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106119b857634e487b7160e01b600052603260045260246000fd5b1a60f81b8282815181106119dc57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c93611a0381612210565b9050611979565b508315610c015760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610740565b61069e83838360016000546001600160a01b038516611a8a57604051622e076360e81b815260040160405180910390fd5b83611aa85760405163b562e8dd60e01b815260040160405180910390fd5b611ab56000868387611873565b6001600160a01b038516600081815260056020908152604080832080546fffffffffffffffffffffffffffffffff1981166001600160401b038083168c018116918217600160401b67ffffffffffffffff1990941690921783900481168c01811690920217909155858452600490925290912080546001600160e01b031916909217600160a01b429092169190910217905580808501838015611b6157506001600160a01b0387163b15155b15611bd8575b60405182906001600160a01b038916906000906000805160206122ea833981519152908290a4611ba0600088848060010195508861157e565b611bbd576040516368d2bf6b60e11b815260040160405180910390fd5b80821415611b67578260005414611bd357600080fd5b611c0c565b5b6040516001830192906001600160a01b038916906000906000805160206122ea833981519152908290a480821415611bd9575b50600055611009565b828054611c2190612227565b90600052602060002090601f016020900481019282611c435760008555611c89565b82601f10611c5c5782800160ff19823516178555611c89565b82800160010185558215611c89579182015b82811115611c89578235825591602001919060010190611c6e565b50611c95929150611c99565b5090565b5b80821115611c955760008155600101611c9a565b80356001600160a01b0381168114611cc557600080fd5b919050565b600060208284031215611cdb578081fd5b610c0182611cae565b60008060408385031215611cf6578081fd5b611cff83611cae565b9150611d0d60208401611cae565b90509250929050565b600080600060608486031215611d2a578081fd5b611d3384611cae565b9250611d4160208501611cae565b9150604084013590509250925092565b60008060008060808587031215611d66578081fd5b611d6f85611cae565b9350611d7d60208601611cae565b92506040850135915060608501356001600160401b0380821115611d9f578283fd5b818701915087601f830112611db2578283fd5b813581811115611dc457611dc46122bd565b604051601f8201601f19908116603f01168101908382118183101715611dec57611dec6122bd565b816040528281528a6020848701011115611e04578586fd5b82602086016020830137918201602001949094529598949750929550505050565b60008060408385031215611e37578182fd5b611e4083611cae565b915060208301358015158114611e54578182fd5b809150509250929050565b60008060408385031215611e71578182fd5b611e7a83611cae565b946020939093013593505050565b60008060008060608587031215611e9d578384fd5b611ea685611cae565b93506020850135925060408501356001600160401b0380821115611ec8578384fd5b818701915087601f830112611edb578384fd5b813581811115611ee9578485fd5b8860208260051b8501011115611efd578485fd5b95989497505060200194505050565b600060208284031215611f1d578081fd5b5035919050565b60008060408385031215611f36578182fd5b82359150611d0d60208401611cae565b600060208284031215611f57578081fd5b8135610c01816122d3565b600060208284031215611f73578081fd5b8151610c01816122d3565b60008060208385031215611f90578182fd5b82356001600160401b0380821115611fa6578384fd5b818501915085601f830112611fb9578384fd5b813581811115611fc7578485fd5b866020828501011115611fd8578485fd5b60209290920196919550909350505050565b600060208284031215611ffb578081fd5b81356001600160401b0381168114610c01578182fd5b600081518084526120298160208601602086016121e4565b601f01601f19169290920160200192915050565b6000835161204f8184602088016121e4565b8351908301906120638183602088016121e4565b01949350505050565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b81526000835161209e8160178501602088016121e4565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516120cf8160288401602088016121e4565b01602801949350505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061210e90830184612011565b9695505050505050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b602081526000610c016020830184612011565b6000821982111561216d5761216d612291565b500190565b600082612181576121816122a7565b500490565b60008160001904831182151516156121a0576121a0612291565b500290565b6000828210156121b7576121b7612291565b500390565b60006001600160401b03838116908316818110156121dc576121dc612291565b039392505050565b60005b838110156121ff5781810151838201526020016121e7565b83811115610b685750506000910152565b60008161221f5761221f612291565b506000190190565b600181811c9082168061223b57607f821691505b6020821081141561225c57634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561227657612276612291565b5060010190565b60008261228c5761228c6122a7565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b03198116811461077d57600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220bb5df352f222d3d7eb3a87794b7df4afd097f40b0e650a8696eb0f58cddb079a64736f6c6343000804003360806040523480156200001157600080fd5b5060405162002b8938038062002b89833981016040819052620000349162000291565b6000805460ff191681556200004a903362000129565b600680546001600160a01b03199081166001600160a01b0388811691909117909255600780548216878416179055600880549091169185169190911790556002889055600a8054600389905564ffffffffff191663ffffffff88161790558151602080840191909120825183830120604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f9481019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120600981905550505050505050505062000376565b62000135828262000139565b5050565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff16620001355760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b80516001600160a01b0381168114620001d957600080fd5b919050565b600082601f830112620001ef578081fd5b81516001600160401b03808211156200020c576200020c62000360565b604051601f8301601f19908116603f0116810190828211818310171562000237576200023762000360565b8160405283815260209250868385880101111562000253578485fd5b8491505b8382101562000276578582018301518183018401529082019062000257565b838211156200028757848385830101525b9695505050505050565b600080600080600080600080610100898b031215620002ae578384fd5b8851975060208901519650604089015163ffffffff81168114620002d0578485fd5b9550620002e060608a01620001c1565b9450620002f060808a01620001c1565b93506200030060a08a01620001c1565b60c08a01519093506001600160401b03808211156200031d578384fd5b6200032b8c838d01620001de565b935060e08b015191508082111562000341578283fd5b50620003508b828c01620001de565b9150509295985092959890939650565b634e487b7160e01b600052604160045260246000fd5b61280380620003866000396000f3fe6080604052600436106102255760003560e01c806391b7f5ed11610123578063b8e8d21f116100ab578063ce3cd9971161006f578063ce3cd997146106a6578063d5391393146106c6578063d547741f146106e8578063eb12d61e14610708578063f7b188a51461072857600080fd5b8063b8e8d21f14610615578063b97ffd0914610632578063c040e6b814610645578063c32fe85b14610673578063c9ed79eb1461068657600080fd5b80639c5ba0b4116100f25780639c5ba0b4146105765780639d76ea5814610596578063a035b1fe146105b6578063a1ebf35d146105cc578063a217fddf1461060057600080fd5b806391b7f5ed146104f657806391d14854146105165780639397a28414610536578063983b2d561461055657600080fd5b80634025feb2116101b157806363dab6331161017557806363dab63314610461578063704b6c02146104815780637617ebdd146104a15780638456cb59146104c157806385eae376146104d657600080fd5b80634025feb2146103c957806341bec0d2146103e957806344004cc11461040957806351cff8d9146104295780635c975abb1461044957600080fd5b8063248a9ca3116101f8578063248a9ca314610303578063276184ae146103345780632a7144f7146103545780632f2ff15d1461038757806336568abe146103a957600080fd5b806301ffc9a71461022a5780631015805b1461025f578063174ab889146102a75780632062615c146102df575b600080fd5b34801561023657600080fd5b5061024a61024536600461235e565b61073d565b60405190151581526020015b60405180910390f35b34801561026b57600080fd5b5061029261027a3660046121d3565b60056020526000908152604090205463ffffffff1681565b60405163ffffffff9091168152602001610256565b3480156102b357600080fd5b506007546102c7906001600160a01b031681565b6040516001600160a01b039091168152602001610256565b3480156102eb57600080fd5b506102f560035481565b604051908152602001610256565b34801561030f57600080fd5b506102f561031e36600461231b565b6000908152600160208190526040909120015490565b34801561034057600080fd5b506008546102c7906001600160a01b031681565b34801561036057600080fd5b5061029261036f3660046121d3565b60046020526000908152604090205463ffffffff1681565b34801561039357600080fd5b506103a76103a2366004612333565b610774565b005b3480156103b557600080fd5b506103a76103c4366004612333565b6107a0565b3480156103d557600080fd5b506103a76103e43660046121ed565b610823565b3480156103f557600080fd5b506103a76104043660046121d3565b610897565b34801561041557600080fd5b506103a76104243660046121ed565b6108f9565b34801561043557600080fd5b506103a76104443660046121d3565b61098e565b34801561045557600080fd5b5060005460ff1661024a565b34801561046d57600080fd5b506103a761047c366004612425565b6109cf565b34801561048d57600080fd5b506103a761049c3660046121d3565b610ba1565b3480156104ad57600080fd5b506103a76104bc36600461231b565b610c09565b3480156104cd57600080fd5b506103a7610c4a565b3480156104e257600080fd5b506103a76104f1366004612228565b610c61565b34801561050257600080fd5b506103a761051136600461231b565b610dfc565b34801561052257600080fd5b5061024a610531366004612333565b610e3d565b34801561054257600080fd5b506103a761055136600461240b565b610e68565b34801561056257600080fd5b506103a76105713660046121d3565b610ebc565b34801561058257600080fd5b506103a7610591366004612476565b610ee0565b3480156105a257600080fd5b506006546102c7906001600160a01b031681565b3480156105c257600080fd5b506102f560025481565b3480156105d857600080fd5b506102f57fe2f4eaae4a9751e85a3e4a7b9587827a877f29914755229b07a7b2da98285f7081565b34801561060c57600080fd5b506102f5600081565b34801561062157600080fd5b50600a546102929063ffffffff1681565b6103a7610640366004612476565b61118f565b34801561065157600080fd5b50600a5461066690600160201b900460ff1681565b6040516102569190612625565b6103a7610681366004612425565b611421565b34801561069257600080fd5b506103a76106a1366004612287565b611611565b3480156106b257600080fd5b506103a76106c1366004612386565b61176f565b3480156106d257600080fd5b506102f56000805160206127ae83398151915281565b3480156106f457600080fd5b506103a7610703366004612333565b6117e3565b34801561071457600080fd5b506103a76107233660046121d3565b61180a565b34801561073457600080fd5b506103a7611840565b60006001600160e01b03198216637965db0b60e01b148061076e57506301ffc9a760e01b6001600160e01b03198316145b92915050565b600082815260016020819052604090912001546107918133611854565b61079b83836118b8565b505050565b6001600160a01b03811633146108155760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61081f8282611923565b5050565b600061082f8133611854565b6040516323b872dd60e01b81526001600160a01b038416906323b872dd9061085f903090889087906004016125a9565b600060405180830381600087803b15801561087957600080fd5b505af115801561088d573d6000803e3d6000fd5b5050505050505050565b60006108a38133611854565b600880546001600160a01b0319166001600160a01b0384169081179091556040519081527fb6d16f9d1240e3c1a2dc71c15426745edc5944c444b52da04542235b0cb99f5b906020015b60405180910390a15050565b60006109058133611854565b60405163a9059cbb60e01b81526001600160a01b0385811660048301526024820184905284169063a9059cbb90604401602060405180830381600087803b15801561094f57600080fd5b505af1158015610963573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098791906122fb565b5050505050565b600061099a8133611854565b6040516001600160a01b038316904780156108fc02916000818181858888f1935050505015801561079b573d6000803e3d6000fd5b60005460ff16156109f25760405162461bcd60e51b815260040161080c906126a4565b600280600a54600160201b900460ff166002811115610a2157634e487b7160e01b600052602160045260246000fd5b14610a3e5760405162461bcd60e51b815260040161080c906126ce565b600a543360009081526005602052604090205463ffffffff91821691610a6691879116612709565b63ffffffff161115610a8a5760405162461bcd60e51b815260040161080c90612680565b3360009081526005602052604081208054869290610aaf90849063ffffffff16612709565b82546101009290920a63ffffffff8181021990931691831602179091556008546007546003546001600160a01b0392831694506323b872dd93339390921691610afa91908a16612731565b6040518463ffffffff1660e01b8152600401610b18939291906125a9565b602060405180830381600087803b158015610b3257600080fd5b505af1158015610b46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6a91906122fb565b50600654604051637f11922d60e11b81526001600160a01b039091169063fe23245a9061085f9033908890889088906004016125cd565b6000610bad8133611854565b6001600160a01b038216610bf35760405162461bcd60e51b815260206004820152600d60248201526c656d707479206164647265737360981b604482015260640161080c565b610bfe6000836118b8565b61081f600033611923565b6000610c158133611854565b60038290556040518281527f1d67ee58cec9ec6d3de0643f069da3dca1e079d8675457e4f9fe3cd2275fd262906020016108ed565b6000610c568133611854565b610c5e61198a565b50565b6000805160206127ae833981519152610c7a8133611854565b60005460ff1615610c9d5760405162461bcd60e51b815260040161080c906126a4565b600280600a54600160201b900460ff166002811115610ccc57634e487b7160e01b600052602160045260246000fd5b14610ce95760405162461bcd60e51b815260040161080c906126ce565b600a546001600160a01b03871660009081526005602052604090205463ffffffff91821691610d1a91889116612709565b63ffffffff161115610d3e5760405162461bcd60e51b815260040161080c90612680565b6001600160a01b03861660009081526005602052604081208054879290610d6c90849063ffffffff16612709565b825463ffffffff9182166101009390930a928302919092021990911617905550600654604051637f11922d60e11b81526001600160a01b039091169063fe23245a90610dc29089908990899089906004016125cd565b600060405180830381600087803b158015610ddc57600080fd5b505af1158015610df0573d6000803e3d6000fd5b50505050505050505050565b6000610e088133611854565b60028290556040518281527ffb92488ba7c255b32158331b4dd67ae708a8761b850ca51d1bbf57c177d35f89906020016108ed565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6000610e748133611854565b600a805463ffffffff191663ffffffff84169081179091556040519081527f87717f0de5df243b3ad7d794a85858de796db5f312ba8414d6295c0a80b736b7906020016108ed565b6000610ec88133611854565b61081f6000805160206127ae833981519152836118b8565b60005460ff1615610f035760405162461bcd60e51b815260040161080c906126a4565b600180600a54600160201b900460ff166002811115610f3257634e487b7160e01b600052602160045260246000fd5b14610f4f5760405162461bcd60e51b815260040161080c906126ce565b610f5d6009548787876119ff565b610f935760405162461bcd60e51b81526020600482015260076024820152666261642073696760c81b604482015260640161080c565b33610fa160208801886121d3565b6001600160a01b031614610fe45760405162461bcd60e51b815260206004820152600a6024820152693130b21039b2b73232b960b11b604482015260640161080c565b610ff4604087016020880161240b565b3360009081526004602052604090205463ffffffff91821691611019918a9116612709565b63ffffffff16111561103d5760405162461bcd60e51b815260040161080c90612680565b336000908152600460205260408120805489929061106290849063ffffffff16612709565b82546101009290920a63ffffffff8181021990931691831602179091556008546007546003546001600160a01b0392831694506323b872dd933393909216916110ad91908d16612731565b6040518463ffffffff1660e01b81526004016110cb939291906125a9565b602060405180830381600087803b1580156110e557600080fd5b505af11580156110f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061111d91906122fb565b50600654604051637f11922d60e11b81526001600160a01b039091169063fe23245a906111549033908b90889088906004016125cd565b600060405180830381600087803b15801561116e57600080fd5b505af1158015611182573d6000803e3d6000fd5b5050505050505050505050565b60005460ff16156111b25760405162461bcd60e51b815260040161080c906126a4565b600180600a54600160201b900460ff1660028111156111e157634e487b7160e01b600052602160045260246000fd5b146111fe5760405162461bcd60e51b815260040161080c906126ce565b61120c6009548787876119ff565b6112425760405162461bcd60e51b81526020600482015260076024820152666261642073696760c81b604482015260640161080c565b3361125060208801886121d3565b6001600160a01b0316146112935760405162461bcd60e51b815260206004820152600a6024820152693130b21039b2b73232b960b11b604482015260640161080c565b6002546112a69063ffffffff8916612731565b3410156112e15760405162461bcd60e51b81526020600482015260096024820152686261642076616c756560b81b604482015260640161080c565b6112f1604087016020880161240b565b3360009081526004602052604090205463ffffffff91821691611316918a9116612709565b63ffffffff16111561133a5760405162461bcd60e51b815260040161080c90612680565b336000908152600460205260408120805489929061135f90849063ffffffff16612709565b825463ffffffff9182166101009390930a928302919092021990911617905550600654604051637f11922d60e11b81526001600160a01b039091169063fe23245a906113b59033908b90889088906004016125cd565b600060405180830381600087803b1580156113cf57600080fd5b505af11580156113e3573d6000803e3d6000fd5b50506007546040516001600160a01b0390911692503480156108fc029250906000818181858888f1935050505015801561088d573d6000803e3d6000fd5b60005460ff16156114445760405162461bcd60e51b815260040161080c906126a4565b600280600a54600160201b900460ff16600281111561147357634e487b7160e01b600052602160045260246000fd5b146114905760405162461bcd60e51b815260040161080c906126ce565b6002546114a39063ffffffff8616612731565b3410156114de5760405162461bcd60e51b81526020600482015260096024820152686261642076616c756560b81b604482015260640161080c565b600a543360009081526005602052604090205463ffffffff9182169161150691879116612709565b63ffffffff16111561152a5760405162461bcd60e51b815260040161080c90612680565b336000908152600560205260408120805486929061154f90849063ffffffff16612709565b825463ffffffff9182166101009390930a928302919092021990911617905550600654604051637f11922d60e11b81526001600160a01b039091169063fe23245a906115a59033908890889088906004016125cd565b600060405180830381600087803b1580156115bf57600080fd5b505af11580156115d3573d6000803e3d6000fd5b50506007546040516001600160a01b0390911692503480156108fc029250906000818181858888f19350505050158015610987573d6000803e3d6000fd5b6000805160206127ae83398151915261162a8133611854565b60005460ff161561164d5760405162461bcd60e51b815260040161080c906126a4565b600180600a54600160201b900460ff16600281111561167c57634e487b7160e01b600052602160045260246000fd5b146116995760405162461bcd60e51b815260040161080c906126ce565b6001600160a01b03871660009081526004602052604090205463ffffffff808716916116c791899116612709565b63ffffffff1611156116eb5760405162461bcd60e51b815260040161080c90612680565b6001600160a01b0387166000908152600460205260408120805488929061171990849063ffffffff16612709565b825463ffffffff9182166101009390930a928302919092021990911617905550600654604051637f11922d60e11b81526001600160a01b039091169063fe23245a90611154908a908a90899089906004016125cd565b600061177b8133611854565b600a805483919064ff000000001916600160201b8360028111156117af57634e487b7160e01b600052602160045260246000fd5b02179055507fd9cae27d4c24409b509a14bf857c9aef50e0559ee2d0d6b4bd6acc5aa6ddb09d826040516108ed9190612625565b600082815260016020819052604090912001546118008133611854565b61079b8383611923565b60006118168133611854565b61081f7fe2f4eaae4a9751e85a3e4a7b9587827a877f29914755229b07a7b2da98285f70836118b8565b600061184c8133611854565b610c5e611ad8565b61185e8282610e3d565b61081f57611876816001600160a01b03166014611b52565b611881836020611b52565b60405160200161189292919061253a565b60408051601f198184030181529082905262461bcd60e51b825261080c9160040161264d565b6118c28282610e3d565b61081f5760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b61192d8282610e3d565b1561081f5760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60005460ff16156119ad5760405162461bcd60e51b815260040161080c906126a4565b6000805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586119e23390565b6040516001600160a01b03909116815260200160405180910390a1565b600080611a5d86611a1d611a18368990038901896123a5565b611d3b565b60405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b90506000611aa18286868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611db492505050565b9050611acd7fe2f4eaae4a9751e85a3e4a7b9587827a877f29914755229b07a7b2da98285f7082610e3d565b979650505050505050565b60005460ff16611b215760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015260640161080c565b6000805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa336119e2565b60606000611b61836002612731565b611b6c9060026126f1565b67ffffffffffffffff811115611b9257634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611bbc576020820181803683370190505b509050600360fc1b81600081518110611be557634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611c2257634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053506000611c46846002612731565b611c519060016126f1565b90505b6001811115611ce5576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611c9357634e487b7160e01b600052603260045260246000fd5b1a60f81b828281518110611cb757634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c93611cde81612780565b9050611c54565b508315611d345760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161080c565b9392505050565b8051602080830151604051600093611d97937f9ec365168689140b3f99729b8c8be5807d5c0cab8901f7aaa85c0093c7c8df69939192019283526001600160a01b0391909116602083015263ffffffff16604082015260600190565b604051602081830303815290604052805190602001209050919050565b6000806000611dc38585611dd8565b91509150611dd081611e48565b509392505050565b600080825160411415611e0f5760208301516040840151606085015160001a611e0387828585612044565b94509450505050611e41565b825160401415611e395760208301516040840151611e2e868383612127565b935093505050611e41565b506000905060025b9250929050565b6000816004811115611e6a57634e487b7160e01b600052602160045260246000fd5b1415611e735750565b6001816004811115611e9557634e487b7160e01b600052602160045260246000fd5b1415611ede5760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b604482015260640161080c565b6002816004811115611f0057634e487b7160e01b600052602160045260246000fd5b1415611f4e5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161080c565b6003816004811115611f7057634e487b7160e01b600052602160045260246000fd5b1415611fc95760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161080c565b6004816004811115611feb57634e487b7160e01b600052602160045260246000fd5b1415610c5e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161080c565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03831115612071575060009050600361211e565b8460ff16601b1415801561208957508460ff16601c14155b1561209a575060009050600461211e565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156120ee573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166121175760006001925092505061211e565b9150600090505b94509492505050565b6000806001600160ff1b0383168161214460ff86901c601b6126f1565b905061215287828885612044565b935093505050935093915050565b80356001600160a01b038116811461217757600080fd5b919050565b60008083601f84011261218d578182fd5b50813567ffffffffffffffff8111156121a4578182fd5b6020830191508360208260051b8501011115611e4157600080fd5b803563ffffffff8116811461217757600080fd5b6000602082840312156121e4578081fd5b611d3482612160565b600080600060608486031215612201578182fd5b61220a84612160565b925061221860208501612160565b9150604084013590509250925092565b6000806000806060858703121561223d578081fd5b61224685612160565b9350612254602086016121bf565b9250604085013567ffffffffffffffff81111561226f578182fd5b61227b8782880161217c565b95989497509550505050565b60008060008060006080868803121561229e578081fd5b6122a786612160565b94506122b5602087016121bf565b93506122c3604087016121bf565b9250606086013567ffffffffffffffff8111156122de578182fd5b6122ea8882890161217c565b969995985093965092949392505050565b60006020828403121561230c578081fd5b81518015158114611d34578182fd5b60006020828403121561232c578081fd5b5035919050565b60008060408385031215612345578182fd5b8235915061235560208401612160565b90509250929050565b60006020828403121561236f578081fd5b81356001600160e01b031981168114611d34578182fd5b600060208284031215612397578081fd5b813560038110611d34578182fd5b6000604082840312156123b6578081fd5b6040516040810181811067ffffffffffffffff821117156123e557634e487b7160e01b83526041600452602483fd5b6040526123f183612160565b81526123ff602084016121bf565b60208201529392505050565b60006020828403121561241c578081fd5b611d34826121bf565b600080600060408486031215612439578283fd5b612442846121bf565b9250602084013567ffffffffffffffff81111561245d578283fd5b6124698682870161217c565b9497909650939450505050565b60008060008060008086880360a081121561248f578485fd5b612498886121bf565b96506040601f19820112156124ab578485fd5b50602087019450606087013567ffffffffffffffff808211156124cc578586fd5b818901915089601f8301126124df578586fd5b8135818111156124ed578687fd5b8a60208285010111156124fe578687fd5b60208301965080955050608089013591508082111561251b578283fd5b5061252889828a0161217c565b979a9699509497509295939492505050565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b81526000835161256c816017850160208801612750565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161259d816028840160208801612750565b01602801949350505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b038516815263ffffffff84166020820152606060408201819052810182905260006001600160fb1b03831115612608578081fd5b8260051b8085608085013791909101608001908152949350505050565b602081016003831061264757634e487b7160e01b600052602160045260246000fd5b91905290565b602081526000825180602084015261266c816040850160208701612750565b601f01601f19169190910160400192915050565b6020808252600a908201526918985908185b5bdd5b9d60b21b604082015260600190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60208082526009908201526862616420737461676560b81b604082015260600190565b6000821982111561270457612704612797565b500190565b600063ffffffff80831681851680830382111561272857612728612797565b01949350505050565b600081600019048311821515161561274b5761274b612797565b500290565b60005b8381101561276b578181015183820152602001612753565b8381111561277a576000848401525b50505050565b60008161278f5761278f612797565b506000190190565b634e487b7160e01b600052601160045260246000fdfe9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6a264697066735822122032ddcdac0e934134545b68efdfb156cb65c952227e5d8f9a45386bb8eaf4b4db64736f6c6343000804003300000000000000000000000076a1a727798580618ee1ea4e4435e63d5a0245e0000000000000000000000000b82aede90afaf61e9338565af5deb9409da6d0fd000000000000000000000000f8202612f9da885bdd0c830a5c0a3c29e3a9ad190000000000000000000000002cafb63a99fa29c64f988bca5a2591513e34b48f00000000000000000000000000000000000000000000000003782dace9d900000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000003dec080a0686201208593cb25ba81aa10102124073dd87483bada6304c4ccc7dcccc956b3a05afd8933d6a2cee5a4cb19460b375105bcc15d5ce54e3e8a997b79d70ab33307