60806040523480156200001157600080fd5b506040518060400160405280601581526020017f4469676974616c205374616e6461726420556e697400000000000000000000008152506040518060400160405280600381526020016244535560e81b81525060126000620000786200015960201b60201c565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508251620000d790600190602086019062000252565b508151620000ed90600290602085019062000252565b506003805460ff191660ff9290921691909117905550620001509050620001136200015e565b6040805180820190915260018152603160f81b60208201526200013e6001600160e01b03620001f716565b30620001fb60201b620013b01760201c565b600755620002f4565b335b90565b60018054604080516020601f60026000196101008789161502019095169490940493840181900481028201810190925282815260609390929091830182828015620001ed5780601f10620001c157610100808354040283529160200191620001ed565b820191906000526020600020905b815481529060010190602001808311620001cf57829003601f168201915b5050505050905090565b4690565b8351602094850120835193850193909320604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815295860194909452928401929092526060830152608082015260a0902090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200029557805160ff1916838001178555620002c5565b82800160010185558215620002c5579182015b82811115620002c5578251825591602001919060010190620002a8565b50620002d3929150620002d7565b5090565b6200015b91905b80821115620002d35760008155600101620002de565b6114e080620003046000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c8063715018a6116100b8578063a0712d681161007c578063a0712d6814610242578063a457c2d714610255578063a9059cbb14610268578063d505accf1461027b578063dd62ed3e1461028e578063f2fde38b146102a157610137565b8063715018a6146102025780637ecebe001461020a5780638da5cb5b1461021d5780638f32d59b1461023257806395d89b411461023a57610137565b8063313ce567116100ff578063313ce567146101aa5780633644e515146101bf57806339509351146101c757806342966c68146101da57806370a08231146101ef57610137565b806306fdde031461013c578063095ea7b31461015a57806318160ddd1461017a57806323b872dd1461018f57806330adf81f146101a2575b600080fd5b6101446102b4565b604051610151919061124f565b60405180910390f35b61016d610168366004610e28565b610349565b604051610151919061119b565b610182610367565b60405161015191906111a9565b61016d61019d366004610d3f565b61036d565b6101826103df565b6101b2610403565b6040516101519190611310565b61018261040c565b61016d6101d5366004610e28565b610412565b6101ed6101e8366004610e58565b610466565b005b6101826101fd366004610cdf565b6104a7565b6101ed6104c2565b610182610218366004610cdf565b610530565b610225610542565b604051610151919061118d565b61016d610551565b610144610575565b6101ed610250366004610e58565b6105d3565b61016d610263366004610e28565b610608565b61016d610276366004610e28565b610676565b6101ed610289366004610d8c565b61068a565b61018261029c366004610d05565b6107c8565b6101ed6102af366004610cdf565b6107f3565b60018054604080516020601f6002600019610100878916150201909516949094049384018190048102820181019092528281526060939092909183018282801561033f5780601f106103145761010080835404028352916020019161033f565b820191906000526020600020905b81548152906001019060200180831161032257829003601f168201915b5050505050905090565b600061035d610356610820565b8484610824565b5060015b92915050565b60065490565b600061037a8484846108d8565b6000196103898561029c610820565b146103d5576103d58461039a610820565b6103d085604051806060016040528060298152602001611450602991396103c38a61029c610820565b919063ffffffff6109ee16565b610824565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b60035460ff1690565b60075481565b600061035d61041f610820565b846103d08560056000610430610820565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff610a1a16565b61046e610551565b6104935760405162461bcd60e51b815260040161048a906112c0565b60405180910390fd5b6104a461049e610542565b82610a46565b50565b6001600160a01b031660009081526004602052604090205490565b6104ca610551565b6104e65760405162461bcd60e51b815260040161048a906112c0565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60086020526000908152604090205481565b6000546001600160a01b031690565b600080546001600160a01b0316610566610820565b6001600160a01b031614905090565b60028054604080516020601f600019610100600187161502019094168590049384018190048102820181019092528281526060939092909183018282801561033f5780601f106103145761010080835404028352916020019161033f565b6105db610551565b6105f75760405162461bcd60e51b815260040161048a906112c0565b6104a4610602610542565b82610b28565b600061035d610615610820565b846103d085604051806060016040528060258152602001611479602591396005600061063f610820565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff6109ee16565b600061035d610683610820565b84846108d8565b6007546001600160a01b03881660009081526008602090815260408083208054600181019091559051929361070c9390926106f1927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928e928e928e9290918e91016111b7565b60405160208183030381529060405280519060200120610bdc565b90506000600182868686604051600081526020016040526040516107339493929190611211565b6020604051602081039080840390855afa158015610755573d6000803e3d6000fd5b505050602060405103519050886001600160a01b0316816001600160a01b0316146107925760405162461bcd60e51b815260040161048a90611270565b854211156107b25760405162461bcd60e51b815260040161048a906112b0565b6107bd898989610824565b505050505050505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b6107fb610551565b6108175760405162461bcd60e51b815260040161048a906112c0565b6104a481610bfb565b3390565b6001600160a01b03831661084a5760405162461bcd60e51b815260040161048a906112f0565b6001600160a01b0382166108705760405162461bcd60e51b815260040161048a90611290565b6001600160a01b0380841660008181526005602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108cb9085906111a9565b60405180910390a3505050565b6001600160a01b0383166108fe5760405162461bcd60e51b815260040161048a906112e0565b6001600160a01b0382166109245760405162461bcd60e51b815260040161048a90611260565b6109678160405180606001604052806026815260200161142a602691396001600160a01b038616600090815260046020526040902054919063ffffffff6109ee16565b6001600160a01b03808516600090815260046020526040808220939093559084168152205461099c908263ffffffff610a1a16565b6001600160a01b0380841660008181526004602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906108cb9085906111a9565b60008184841115610a125760405162461bcd60e51b815260040161048a919061124f565b505050900390565b600082820183811015610a3f5760405162461bcd60e51b815260040161048a906112a0565b9392505050565b6001600160a01b038216610a6c5760405162461bcd60e51b815260040161048a906112d0565b610aaf81604051806060016040528060228152602001611408602291396001600160a01b038516600090815260046020526040902054919063ffffffff6109ee16565b6001600160a01b038316600090815260046020526040902055600654610adb908263ffffffff610c7c16565b6006556040516000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b1c9085906111a9565b60405180910390a35050565b6001600160a01b038216610b4e5760405162461bcd60e51b815260040161048a90611300565b600654610b61908263ffffffff610a1a16565b6006556001600160a01b038216600090815260046020526040902054610b8d908263ffffffff610a1a16565b6001600160a01b0383166000818152600460205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b1c9085906111a9565b60405161190160f01b8152600281019290925260228201526042902090565b6001600160a01b038116610c215760405162461bcd60e51b815260040161048a90611280565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610a3f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506109ee565b80356103618161138a565b80356103618161139e565b8035610361816113a7565b600060208284031215610cf157600080fd5b6000610cfd8484610cbe565b949350505050565b60008060408385031215610d1857600080fd5b6000610d248585610cbe565b9250506020610d3585828601610cbe565b9150509250929050565b600080600060608486031215610d5457600080fd5b6000610d608686610cbe565b9350506020610d7186828701610cbe565b9250506040610d8286828701610cc9565b9150509250925092565b600080600080600080600060e0888a031215610da757600080fd5b6000610db38a8a610cbe565b9750506020610dc48a828b01610cbe565b9650506040610dd58a828b01610cc9565b9550506060610de68a828b01610cc9565b9450506080610df78a828b01610cd4565b93505060a0610e088a828b01610cc9565b92505060c0610e198a828b01610cc9565b91505092959891949750929550565b60008060408385031215610e3b57600080fd5b6000610e478585610cbe565b9250506020610d3585828601610cc9565b600060208284031215610e6a57600080fd5b6000610cfd8484610cc9565b610e7f8161132b565b82525050565b610e7f81611336565b610e7f8161133b565b6000610ea28261131e565b610eac8185611322565b9350610ebc818560208601611350565b610ec581611380565b9093019392505050565b6000610edc602383611322565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647281526265737360e81b602082015260400192915050565b6000610f21601e83611322565b7f5065726d69747461626c653a20496e76616c6964207369676e61747572650000815260200192915050565b6000610f5a602683611322565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526564647265737360d01b602082015260400192915050565b6000610fa2602283611322565b7f45524332303a20617070726f766520746f20746865207a65726f206164647265815261737360f01b602082015260400192915050565b6000610fe6601b83611322565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b600061101f601483611322565b7314195c9b5a5d1d18589b194e88115e1c1a5c995960621b815260200192915050565b600061104f602083611322565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572815260200192915050565b6000611088602183611322565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265738152607360f81b602082015260400192915050565b60006110cb602583611322565b7f45524332303a207472616e736665722066726f6d20746865207a65726f206164815264647265737360d81b602082015260400192915050565b6000611112602483611322565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164648152637265737360e01b602082015260400192915050565b6000611158601f83611322565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300815260200192915050565b610e7f8161134a565b602081016103618284610e76565b602081016103618284610e85565b602081016103618284610e8e565b60c081016111c58289610e8e565b6111d26020830188610e76565b6111df6040830187610e76565b6111ec6060830186610e8e565b6111f96080830185610e8e565b61120660a0830184610e8e565b979650505050505050565b6080810161121f8287610e8e565b61122c6020830186611184565b6112396040830185610e8e565b6112466060830184610e8e565b95945050505050565b60208082528101610a3f8184610e97565b6020808252810161036181610ecf565b6020808252810161036181610f14565b6020808252810161036181610f4d565b6020808252810161036181610f95565b6020808252810161036181610fd9565b6020808252810161036181611012565b6020808252810161036181611042565b602080825281016103618161107b565b60208082528101610361816110be565b6020808252810161036181611105565b602080825281016103618161114b565b602081016103618284611184565b5190565b90815260200190565b60006103618261133e565b151590565b90565b6001600160a01b031690565b60ff1690565b60005b8381101561136b578181015183820152602001611353565b8381111561137a576000848401525b50505050565b601f01601f191690565b6113938161132b565b81146104a457600080fd5b6113938161133b565b6113938161134a565b8351602094850120835193850193909320604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815295860194909452928401929092526060830152608082015260a090209056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365446f6c6c61723a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa365627a7a72315820cab1f199e23cce25473e83de58cf4fe8ea5892ea65b93162de7eac79704246396c6578706572696d656e74616cf564736f6c63430005110040