60c0604052601c60809081527f54686520426c752041726374696320576174657220436f6d70616e790000000060a0526005906200003e908262000632565b506040805180820190915260048152634241524360e01b602082015260069062000069908262000632565b506007805460ff191660099081179091556200008790600a6200080b565b620000979063067f35406200081b565b6008819055620000b99061271090620000b290600562000399565b906200042c565b600955600a805460ff191660011790556040805160608101825261070881526201518060208201526202a30091810191909152620000fc90600d906003620004fe565b50604080516080810182526018815260146020820152600a918101919091525f60608201526200013190601090600462000548565b50601680546001600160a01b031916739f9d9c48d1ae8f5536bc1f25cc2f797041cbe70517905534801562000164575f80fd5b50620001703362000475565b601780546001600160a01b031916331790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d91829163c45a0155916004808201926020929091908290030181865afa158015620001d4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001fa919062000835565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000246573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200026c919062000835565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002b7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002dd919062000835565b601580546001600160a01b03199081166001600160a01b0393841617825560148054909116848416179055305f908152600160208181526040808420805460ff19908116851790915533808652828620805483168617905595549096168452600282528084208054909616909217909455600854838352600385528183208190559051908152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620008cb565b5f825f03620003aa57505f62000426565b5f620003b783856200081b565b905082620003c685836200085d565b14620004235760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f6200042383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620004c460201b60201c565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f8183620004e75760405162461bcd60e51b81526004016200041a91906200087d565b505f620004f584866200085d565b95945050505050565b826003810192821562000536579160200282015b8281111562000536578251829062ffffff1690559160200191906001019062000512565b50620005449291506200057e565b5090565b826004810192821562000536579160200282015b8281111562000536578251829060ff169055916020019190600101906200055c565b5b8082111562000544575f81556001016200057f565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620005bd57607f821691505b602082108103620005dc57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200062d57805f5260205f20601f840160051c81016020851015620006095750805b601f840160051c820191505b818110156200062a575f815560010162000615565b50505b505050565b81516001600160401b038111156200064e576200064e62000594565b62000666816200065f8454620005a8565b84620005e2565b602080601f8311600181146200069c575f8415620006845750858301515b5f19600386901b1c1916600185901b178555620006f6565b5f85815260208120601f198616915b82811015620006cc57888601518255948401946001909101908401620006ab565b5085821015620006ea57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200075257815f1904821115620007365762000736620006fe565b808516156200074457918102915b93841c939080029062000717565b509250929050565b5f826200076a5750600162000426565b816200077857505f62000426565b81600181146200079157600281146200079c57620007bc565b600191505062000426565b60ff841115620007b057620007b0620006fe565b50506001821b62000426565b5060208310610133831016604e8410600b8410161715620007e1575081810a62000426565b620007ed838362000712565b805f1904821115620008035762000803620006fe565b029392505050565b5f6200042360ff8416836200075a565b8082028115828204841417620004265762000426620006fe565b5f6020828403121562000846575f80fd5b81516001600160a01b038116811462000423575f80fd5b5f826200087857634e487b7160e01b5f52601260045260245ffd5b500490565b5f602080835283518060208501525f5b81811015620008ab578581018301518582016040015282016200088d565b505f604082860101526040601f19601f8301168501019250505092915050565b61186780620008d95f395ff3fe608060405260043610610164575f3560e01c806370a08231116100cd57806398ed3bbd11610087578063df20fd4911610062578063df20fd491461048f578063e6b2603b146104ae578063f2a95aa9146104c2578063f2fde38b146104e1575f80fd5b806398ed3bbd1461040d578063a9059cbb1461042c578063dd62ed3e1461044b575f80fd5b806370a082311461033f578063715018a61461037357806372460e7f14610387578063736ce0d4146103be5780638da5cb5b146103dd57806395d89b41146103f9575f80fd5b806323b872dd1161011e57806323b872dd14610278578063313ce5671461029757806333cf5dcf146102b85780633ecad271146102d95780635d098b38146103075780636ddd171314610326575f80fd5b80630445b6671461016f57806306fdde0314610197578063095ea7b3146101b85780630d61f837146101e7578063107530dd1461021557806318160ddd14610264575f80fd5b3661016b57005b5f80fd5b34801561017a575f80fd5b5061018460095481565b6040519081526020015b60405180910390f35b3480156101a2575f80fd5b506101ab610500565b60405161018e91906114bd565b3480156101c3575f80fd5b506101d76101d2366004611503565b610590565b604051901515815260200161018e565b3480156101f2575f80fd5b506101d761020136600461152d565b60016020525f908152604090205460ff1681565b348015610220575f80fd5b50610242600a54600b54600c5460ff6101008404811693620100009004169293565b604080519415158552921515602085015291830152606082015260800161018e565b34801561026f575f80fd5b50600854610184565b348015610283575f80fd5b506101d7610292366004611548565b6105a6565b3480156102a2575f80fd5b5060075460405160ff909116815260200161018e565b3480156102c3575f80fd5b506102d76102d236600461152d565b610610565b005b3480156102e4575f80fd5b506101d76102f336600461152d565b60026020525f908152604090205460ff1681565b348015610312575f80fd5b506102d761032136600461152d565b610664565b348015610331575f80fd5b50600a546101d79060ff1681565b34801561034a575f80fd5b5061018461035936600461152d565b6001600160a01b03165f9081526003602052604090205490565b34801561037e575f80fd5b506102d76106af565b348015610392575f80fd5b506015546103a6906001600160a01b031681565b6040516001600160a01b03909116815260200161018e565b3480156103c9575f80fd5b506014546103a6906001600160a01b031681565b3480156103e8575f80fd5b505f546001600160a01b03166103a6565b348015610404575f80fd5b506101ab6106e3565b348015610418575f80fd5b506102d761042736600461159a565b6106f2565b348015610437575f80fd5b506101d7610446366004611503565b610745565b348015610456575f80fd5b506101846104653660046115cd565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b34801561049a575f80fd5b506102d76104a9366004611604565b61075b565b3480156104b9575f80fd5b506102d761079c565b3480156104cd575f80fd5b506102d76104dc366004611503565b610860565b3480156104ec575f80fd5b506102d76104fb36600461152d565b61096f565b60606005805461050f9061161e565b80601f016020809104026020016040519081016040528092919081815260200182805461053b9061161e565b80156105865780601f1061055d57610100808354040283529160200191610586565b820191905f5260205f20905b81548152906001019060200180831161056957829003601f168201915b5050505050905090565b5f61059c338484610a06565b5060015b92915050565b5f6105f884336105f38560405180606001604052806028815260200161180a602891396001600160a01b038a165f9081526004602090815260408083203384529091529020549190610ab8565b610a06565b610603848484610af0565b50600190505b9392505050565b5f546001600160a01b031633146106425760405162461bcd60e51b815260040161063990611656565b60405180910390fd5b601780546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b0316331461068d5760405162461bcd60e51b815260040161063990611656565b601680546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146106d85760405162461bcd60e51b815260040161063990611656565b6106e15f610d7b565b565b60606006805461050f9061161e565b5f546001600160a01b0316331461071b5760405162461bcd60e51b815260040161063990611656565b6001600160a01b03919091165f908152600160205260409020805460ff1916911515919091179055565b5f610751338484610af0565b5060019392505050565b6017546001600160a01b031633146107855760405162461bcd60e51b81526004016106399061168b565b600a805460ff191692151592909217909155600955565b6017546001600160a01b031633146107c65760405162461bcd60e51b81526004016106399061168b565b6017546040515f916001600160a01b03169047908381818185875af1925050503d805f8114610810576040519150601f19603f3d011682016040523d82523d5f602084013e610815565b606091505b505090508061085d5760405162461bcd60e51b8152602060048201526014602482015273151bdad95b881c185e5b595b9d0819985a5b195960621b6044820152606401610639565b50565b6017546001600160a01b0316331461088a5760405162461bcd60e51b81526004016106399061168b565b6017546040516001600160a01b039182166024820152604481018390525f9184169060640160408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b179052516108e491906116b1565b5f604051808303815f865af19150503d805f811461091d576040519150601f19603f3d011682016040523d82523d5f602084013e610922565b606091505b505090508061096a5760405162461bcd60e51b8152602060048201526014602482015273151bdad95b881c185e5b595b9d0819985a5b195960621b6044820152606401610639565b505050565b5f546001600160a01b031633146109985760405162461bcd60e51b815260040161063990611656565b6001600160a01b0381166109fd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610639565b61085d81610d7b565b6001600160a01b038316610a2f5760405163e602df0560e01b81525f6004820152602401610639565b6001600160a01b038216610a5857604051634a1406b160e11b81525f6004820152602401610639565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f8184841115610adb5760405162461bcd60e51b815260040161063991906114bd565b505f610ae784866116e0565b95945050505050565b5f6001600160a01b038416610b1a57604051634b637e8f60e11b81525f6004820152602401610639565b6001600160a01b038316610b435760405163ec442f0560e01b81525f6004820152602401610639565b815f03610b63576040516367c8957760e01b815260040160405180910390fd5b601754600160a01b900460ff1615610b8757610b80848484610dca565b9050610609565b600c5415801590610ba15750600a5462010000900460ff16155b15610bae57610bae610ead565b305f9081526003602052604090205460095481108015908190610bdb5750601754600160a01b900460ff16155b8015610bff57506001600160a01b0386165f9081526002602052604090205460ff16155b8015610c0d5750600a5460ff165b8015610c3157506001600160a01b0386165f9081526001602052604090205460ff16155b8015610c5557506001600160a01b0385165f9081526001602052604090205460ff16155b15610c6357610c6382610f67565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389165f90815260039091529190912054610cb4918690610ab8565b6001600160a01b0387165f90815260036020526040812091909155610cd98787610fe2565b610ced57610ce8878787611097565b610cef565b845b6001600160a01b0387165f90815260036020526040902054909150610d14908261118d565b6001600160a01b038088165f8181526003602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d679085815260200190565b60405180910390a360019350505050610609565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600390915291822054610e1a918490610ab8565b6001600160a01b038086165f908152600360205260408082209390935590851681522054610e48908361118d565b6001600160a01b038085165f8181526003602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e9b9086815260200190565b60405180910390a35060019392505050565b600d54600c54610ebd9190611707565b4211610ec8575f600b555b600d54600c54610ed89190611707565b42118015610ef55750600e54600c54610ef19190611707565b4211155b15610f00576001600b555b600e54600c54610f109190611707565b42118015610f2d5750600f54600c54610f299190611707565b4211155b15610f38576002600b555b600f54600c54610f489190611707565b4211156106e1576003600b55600a805462ff0000191662010000179055565b6017805460ff60a01b1916600160a01b17905547610f84826111eb565b5f610f8f4783611374565b90508015610fd0576016546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610fce573d5f803e3d5ffd5b505b50506017805460ff60a01b1916905550565b600a545f9062010000900460ff1615610ffd575060016105a0565b6001600160a01b0383165f9081526001602052604090205460ff168061103a57506001600160a01b0382165f9081526001602052604090205460ff165b15611047575060016105a0565b6001600160a01b0383165f9081526002602052604090205460ff168061108457506001600160a01b0382165f9081526002602052604090205460ff165b1561109057505f6105a0565b505f6105a0565b600a545f90610100900460ff166110bc57600a805461ff00191661010017905542600c555b6001600160a01b0383165f9081526002602052604081205460ff161561110b5761110860646111026010600b54600481106110f9576110f96116f3565b015486906113b5565b90611433565b90505b801561118357305f9081526003602052604090205461112a908261118d565b305f81815260036020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061117a9085815260200190565b60405180910390a35b610ae78382611374565b5f806111998385611707565b9050838110156106095760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610639565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061121e5761121e6116f3565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611275573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611299919061171a565b816001815181106112ac576112ac6116f3565b6001600160a01b0392831660209182029290920101526014546112d29130911684610a06565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac9479061130a9085905f90869030904290600401611778565b5f604051808303815f87803b158015611321575f80fd5b505af1158015611333573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516113689291906117b3565b60405180910390a15050565b5f61060983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ab8565b5f825f036113c457505f6105a0565b5f6113cf83856117d3565b9050826113dc85836117ea565b146106095760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610639565b5f61060983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152505f818361148f5760405162461bcd60e51b815260040161063991906114bd565b505f610ae784866117ea565b5f5b838110156114b557818101518382015260200161149d565b50505f910152565b602081525f82518060208401526114db81604085016020870161149b565b601f01601f19169190910160400192915050565b6001600160a01b038116811461085d575f80fd5b5f8060408385031215611514575f80fd5b823561151f816114ef565b946020939093013593505050565b5f6020828403121561153d575f80fd5b8135610609816114ef565b5f805f6060848603121561155a575f80fd5b8335611565816114ef565b92506020840135611575816114ef565b929592945050506040919091013590565b80358015158114611595575f80fd5b919050565b5f80604083850312156115ab575f80fd5b82356115b6816114ef565b91506115c460208401611586565b90509250929050565b5f80604083850312156115de575f80fd5b82356115e9816114ef565b915060208301356115f9816114ef565b809150509250929050565b5f8060408385031215611615575f80fd5b61151f83611586565b600181811c9082168061163257607f821691505b60208210810361165057634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252600c908201526b155b985d5d1a1bdc9a5e995960a21b604082015260600190565b5f82516116c281846020870161149b565b9190910192915050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156105a0576105a06116cc565b634e487b7160e01b5f52603260045260245ffd5b808201808211156105a0576105a06116cc565b5f6020828403121561172a575f80fd5b8151610609816114ef565b5f815180845260208085019450602084015f5b8381101561176d5781516001600160a01b031687529582019590820190600101611748565b509495945050505050565b85815284602082015260a060408201525f61179660a0830186611735565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201525f6117cb6040830184611735565b949350505050565b80820281158282048414176105a0576105a06116cc565b5f8261180457634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b95f8ba5615787a6800e79dd644bc163be3198cec0f672d848c97c83357616c064736f6c63430008170033