60806040526040516109a93803806109a98339810180604052606081101561002657600080fd5b815160208301516040840180519294919382019264010000000081111561004c57600080fd5b8201602081018481111561005f57600080fd5b815164010000000081118282018710171561007957600080fd5b5050604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c01902090935085925083915060008051602061094e833981519152600019909101146100d257fe5b6100e48264010000000061020b810204565b6000815111156101a157600082600160a060020a0316826040518082805190602001908083835b6020831061012a5780518252601f19909201916020918201910161010b565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d806000811461018a576040519150601f19603f3d011682016040523d82523d6000602084013e61018f565b606091505b5050905080151561019f57600080fd5b505b5050604080517f656970313936372e70726f78792e61646d696e000000000000000000000000008152905190819003601301902060008051602061092e833981519152600019909101146101f157fe5b6102038264010000000061028a810204565b5050506102a4565b610221816401000000006105a461029c82021704565b1515610278576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b81526020018061096e603b913960400191505060405180910390fd5b60008051602061094e83398151915255565b60008051602061092e83398151915255565b6000903b1190565b61067b806102b36000396000f3fe608060405260043610610066577c010000000000000000000000000000000000000000000000000000000060003504633659cfe681146100705780634f1ef286146100a35780635c60da1b146101235780638f28397014610154578063f851a44014610187575b61006e61019c565b005b34801561007c57600080fd5b5061006e6004803603602081101561009357600080fd5b5035600160a060020a03166101b6565b61006e600480360360408110156100b957600080fd5b600160a060020a0382351691908101906040810160208201356401000000008111156100e457600080fd5b8201836020820111156100f657600080fd5b8035906020019184600183028401116401000000008311171561011857600080fd5b5090925090506101f0565b34801561012f57600080fd5b5061013861029f565b60408051600160a060020a039092168252519081900360200190f35b34801561016057600080fd5b5061006e6004803603602081101561017757600080fd5b5035600160a060020a03166102dc565b34801561019357600080fd5b506101386103b2565b6101a46103dd565b6101b46101af61044e565b610473565b565b6101be610497565b600160a060020a031633600160a060020a031614156101e5576101e0816104bc565b6101ed565b6101ed61019c565b50565b6101f8610497565b600160a060020a031633600160a060020a031614156102925761021a836104bc565b600083600160a060020a031683836040518083838082843760405192019450600093509091505080830381855af49150503d8060008114610277576040519150601f19603f3d011682016040523d82523d6000602084013e61027c565b606091505b5050905080151561028c57600080fd5b5061029a565b61029a61019c565b505050565b60006102a9610497565b600160a060020a031633600160a060020a031614156102d1576102ca61044e565b90506102d9565b6102d961019c565b90565b6102e4610497565b600160a060020a031633600160a060020a031614156101e557600160a060020a038116151561035e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806105df6036913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f610387610497565b60408051600160a060020a03928316815291841660208301528051918290030190a16101e0816104fc565b60006103bc610497565b600160a060020a031633600160a060020a031614156102d1576102ca610497565b6103e5610497565b600160a060020a0316331415610446576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806105ad6032913960400191505060405180910390fd5b6101b46101b4565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e808015610492573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6104c581610520565b604051600160a060020a038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b610529816105a4565b1515610580576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b815260200180610615603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b6000903b119056fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a165627a7a72305820a5a13b8e3887d8c6daf2319b42c878af3cccccfb9db6e7b90d92596b329e9c820029b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc43616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373000000000000000000000000f3d513fa681ff6f8f7557533d19aea6a20b961f20000000000000000000000009cb1eeccd165090a4a091209e8c3a353954b1f0f00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000