This contract is not verified yet.
Publish its source to get the code, ABI, read and write tabs. Anyone can verify any contract.
bytecode
23,404 bytes
0x6080604052600436106101355760003560e01c80637cf4105d116100ab578063a28a1f711161006f578063a28a1f7114610372578063a5e4122a146103af578063a681711714610407578063b3f006741461043d578063efdcd97414610461578063f2fde38b1461048157600080fd5b80637cf4105d146102bd57806383a1364a146102d05780638da5cb5b146102fd5780638ebfc7961461032f5780639d3518771461034f57600080fd5b80634c7ababd116100fd5780634c7ababd146101f35780634cf1115d146102135780634db1647c1461023157806360fd0989146102445780636a5dab9f1461027d57806375e885a21461029d57600080fd5b80630307535e1461013a57806322df78d01461015c57806326f3ed2b1461018c5780632c31fb08146101c05780633f6738a9146101d3575b600080fd5b34801561014657600080fd5b5061015a610155366004611cb8565b6104a1565b005b34801561016857600080fd5b50600054600160a01b900460ff165b60405190151581526020015b60405180910390f35b34801561019857600080fd5b50600054600160a81b900464ffffffffff1660405164ffffffffff9091168152602001610183565b61015a6101ce366004611cfb565b610576565b3480156101df57600080fd5b5061015a6101ee366004611d3d565b61084a565b3480156101ff57600080fd5b5061015a61020e366004611d56565b6108bd565b34801561021f57600080fd5b50600754604051908152602001610183565b61015a61023f366004611db2565b610980565b34801561025057600080fd5b5061017761025f366004611e27565b6001600160a01b031660009081526009602052604090205460ff1690565b34801561028957600080fd5b5061015a610298366004611e52565b610c82565b3480156102a957600080fd5b5061015a6102b8366004611e7c565b610cc1565b61015a6102cb366004611ebc565b610e16565b3480156102dc57600080fd5b506102f06102eb366004611e27565b611103565b6040516101839190611f0d565b34801561030957600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610183565b34801561033b57600080fd5b5061015a61034a366004611f57565b61119d565b34801561035b57600080fd5b5060085460405161ffff9091168152602001610183565b34801561037e57600080fd5b5061031761038d366004611f90565b64ffffffffff166000908152600160205260409020546001600160a01b031690565b3480156103bb57600080fd5b506103f96103ca366004611e27565b6001600160a01b031660009081526005602090815260408083205460069092529091205460ff91821692911690565b604051610183929190611fe5565b34801561041357600080fd5b50610427610422366004611f90565b6111e9565b6040516101839a99989796959493929190612002565b34801561044957600080fd5b506008546201000090046001600160a01b0316610317565b34801561046d57600080fd5b5061015a61047c366004611e27565b6112b0565b34801561048d57600080fd5b5061015a61049c366004611e27565b61136a565b6000546001600160a01b0316336001600160a01b0316146104e857335b60405163060296c760e31b81526001600160a01b0390911660048201526024015b60405180910390fd5b6101f461ffff8216111561050f57604051630b38148960e21b815260040160405180910390fd5b6008805461ffff191661ffff831690811791829055600754604080519182526020820192909252620100009092046001600160a01b0316917f63164921add8563148a9f0dba76dc04da8593cf105f95aef2a1053b57fba523e91015b60405180910390a250565b600054600160a01b900460ff166105a05760405163125b940760e21b815260040160405180910390fd5b6105a86113be565b6001600160a01b03831660009081526006602052604090205460ff166105ec57604051630ebdd12f60e21b81526001600160a01b03841660048201526024016104df565b6001600160a01b038316600090815260056020526040812054815460ff9091169190600160a81b900464ffffffffff1681601561062883612084565b91906101000a81548164ffffffffff021916908364ffffffffff1602179055509050610653816113da565b60003082338589898960008060008060405161066e90611c94565b6106829b9a999897969594939291906120ab565b604051809103906000f08015801561069e573d6000803e3d6000fd5b5064ffffffffff8316600090815260016020526040902080546001600160a01b0319166001600160a01b038381169190911790915590915086166342842e0e336040516001600160e01b031960e084901b1681526001600160a01b039182166004820152908416602482015260448101889052606401600060405180830381600087803b15801561072e57600080fd5b505af1158015610742573d6000803e3d6000fd5b50505050610751828783611506565b600080826001600160a01b031663d95bd6c96040518163ffffffff1660e01b8152600401606060405180830381865afa158015610792573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b6919061212e565b92509250506107c6848383611524565b806001600160a01b0316826001600160a01b0316896001600160a01b03167fb0e93c0715a252ef3a37bd0ac4f212ad035f43b42479c6cbc396b3368e34384187898c61080f3390565b8d604051610821959493929190612170565b60405180910390a450505050506108456001600080516020615b1783398151915255565b505050565b6000546001600160a01b0316336001600160a01b03161461086b57336104be565b60078190556008546040805183815261ffff83166020820152620100009092046001600160a01b0316917f63164921add8563148a9f0dba76dc04da8593cf105f95aef2a1053b57fba523e910161056b565b64ffffffffff84166000908152600160205260409020546001600160a01b0316336001600160a01b03161461091457604051630db9d21960e21b815264ffffffffff851660048201523360248201526044016104df565b826001600160a01b0316826001600160a01b03161415801561096157506001600160a01b038216600090815260046020908152604080832064ffffffffff8816845290915290205460ff16155b15610970576109708483611556565b61097a84846116ea565b50505050565b600054600160a01b900460ff166109aa5760405163125b940760e21b815260040160405180910390fd5b6109b26113be565b846000036109d357604051631f2a200560e01b815260040160405180910390fd5b8164ffffffffff168464ffffffffff161015806109fd57508364ffffffffff168364ffffffffff16105b80610a1557508164ffffffffff168364ffffffffff16115b80610a2e57504264ffffffffff168264ffffffffff1611155b15610a4c57604051631f8136eb60e31b815260040160405180910390fd5b60008054600160a81b900464ffffffffff16816015610a6a83612084565b91906101000a81548164ffffffffff021916908364ffffffffff16021790555090506000610a9a8289898661178d565b905080600003610abd57604051631f2a200560e01b815260040160405180910390fd5b600030833360038c60008a8d8d8d8b604051610ad890611c94565b610aec9b9a999897969594939291906120ab565b604051809103906000f080158015610b08573d6000803e3d6000fd5b5064ffffffffff8416600090815260016020526040902080546001600160a01b0319166001600160a01b0383161790559050610b50336001600160a01b038b169083856119a6565b610b5b838a83611506565b600080826001600160a01b031663d95bd6c96040518163ffffffff1660e01b8152600401606060405180830381865afa158015610b9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc0919061212e565b9250925050610bd0858383611524565b806001600160a01b0316826001600160a01b03168c6001600160a01b03167f202cea0f034e4899748fca23b39f2354d17c79cfdb27b00f88bc9bdfbe672aad88610c173390565b6040805164ffffffffff93841681526001600160a01b03909216602083015281018a9052818f166060820152818e166080820152908c1660a082015260c00160405180910390a45050505050610c7a6001600080516020615b1783398151915255565b505050505050565b6000546001600160a01b0316336001600160a01b031614610ca357336104be565b60008054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b0316336001600160a01b031614610ce257336104be565b6001600160a01b038316610d095760405163d92e233d60e01b815260040160405180910390fd5b6001826004811115610d1d57610d1d611fad565b14158015610d3d57506002826004811115610d3a57610d3a611fad565b14155b8015610d5b57506004826004811115610d5857610d58611fad565b14155b15610d7957604051631aa81af160e21b815260040160405180910390fd5b6001600160a01b0383166000908152600560205260409020805483919060ff19166001836004811115610dae57610dae611fad565b02179055506001600160a01b03831660008181526006602052604090819020805460ff1916841515179055517fad74493cbf6a5b49fc5f2893a2f5eb37f0acf626529fbc3ca3c88b15bf548e5d90610e099085908590611fe5565b60405180910390a2505050565b600054600160a01b900460ff16610e405760405163125b940760e21b815260040160405180910390fd5b610e486113be565b82600003610e6957604051631f2a200560e01b815260040160405180910390fd5b60008054600160a81b900464ffffffffff16816015610e8783612084565b91906101000a81548164ffffffffff021916908364ffffffffff16021790555090506000610eb78287878661178d565b905080600003610eda57604051631f2a200560e01b815260040160405180910390fd5b600030833360008a60008a600080600080604051610ef790611c94565b610f0b9b9a999897969594939291906120ab565b604051809103906000f080158015610f27573d6000803e3d6000fd5b5064ffffffffff8416600090815260016020526040902080546001600160a01b0319166001600160a01b0383161790559050610f6f336001600160a01b0389169083856119a6565b610f7a838883611506565b600080826001600160a01b031663d95bd6c96040518163ffffffff1660e01b8152600401606060405180830381865afa158015610fbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fdf919061212e565b9250925050610fef858383611524565b806001600160a01b0316826001600160a01b03168a6001600160a01b03167f531cba00a411ade37b4ca8175d92c94149f19536bd8e5a83d581aa7f040d192e886110363390565b8e6001600160a01b03166370a082318a6040518263ffffffff1660e01b815260040161107191906001600160a01b0391909116815260200190565b602060405180830381865afa15801561108e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b291906121b7565b6040805164ffffffffff94851681526001600160a01b039093166020840152820152908c16606082015260800160405180910390a4505050505061097a6001600080516020615b1783398151915255565b6001600160a01b03811660009081526002602090815260409182902080548351818402810184019094528084526060939283018282801561119157602002820191906000526020600020906000905b82829054906101000a900464ffffffffff1664ffffffffff16815260200190600501906020826004010492830192600103820291508084116111525790505b50505050509050919050565b6000546001600160a01b0316336001600160a01b0316146111be57336104be565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b600080600080600080600080600080600160008c64ffffffffff1664ffffffffff16815260200190815260200160002060009054906101000a90046001600160a01b03166001600160a01b0316634c02bf0b6040518163ffffffff1660e01b815260040161014060405180830381865afa15801561126b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128f91906121d0565b99509950995099509950995099509950995099509193959799509193959799565b6000546001600160a01b0316336001600160a01b0316146112d157336104be565b6001600160a01b0381166112f85760405163d92e233d60e01b815260040160405180910390fd5b600880546001600160a01b038381166201000090810262010000600160b01b031984168117948590556007546040805191825261ffff92831692909516919091176020820152930416917f63164921add8563148a9f0dba76dc04da8593cf105f95aef2a1053b57fba523e910161056b565b6000546001600160a01b0316336001600160a01b03161461138b57336104be565b6001600160a01b0381166113b25760405163d92e233d60e01b815260040160405180910390fd5b6113bb816119dc565b50565b6113c6611a4d565b6002600080516020615b1783398151915255565b3360009081526009602052604090205460ff16156114115734156113bb5760405163b000960760e01b815260040160405180910390fd5b60075434146114405760075460405163082fc47b60e21b815260048101919091523460248201526044016104df565b34156113bb576008546040516000916201000090046001600160a01b03169034908381818185875af1925050503d8060008114611499576040519150601f19603f3d011682016040523d82523d6000602084013e61149e565b606091505b50509050806114c057604051630db2c7f160e31b815260040160405180910390fd5b604080516001815234602082015264ffffffffff8416917f599e0e7458510fc6240982cbfeb3a6d640707bc3457603c774d41cbe0c96f628910160405180910390a25050565b6115108333611a7f565b61151a8383611a7f565b6108458382611a7f565b6001600160a01b0382161561153d5761153d8383611a7f565b6001600160a01b03811615610845576108458382611a7f565b6001600160a01b038116600090815260036020908152604080832064ffffffffff861684529091528120549081900361158e57505050565b6001600160a01b0382166000908152600260205260408120906115b260018461229b565b82549091506000906115c69060019061229b565b905080821461167b5760008382815481106115e3576115e36122b4565b90600052602060002090600691828204019190066005029054906101000a900464ffffffffff1690508084848154811061161f5761161f6122b4565b6000918252602080832060068084049091018054919093066005026101000a64ffffffffff8181021990921695821602949094179091556001600160a01b03891682526003815260408083209490931682529290925290208490555b8280548061168b5761168b6122ca565b600082815260208082206006600019909401848104909101805464ffffffffff6005968406969096026101000a8602191690559093556001600160a01b0390971687526003825260408088209890911687529690525050509181205550565b6001600160a01b038116600090815260036020908152604080832064ffffffffff861684529091529020541561171e575050565b6001600160a01b03166000818152600260209081526040808320805460018101825581855283852060068083049091018054919092066005026101000a64ffffffffff818102199092169890911690810297909717905554938352600382528083209483529390529190912055565b336000908152600960205260408120543415159060ff16156117d15780156117c85760405163b000960760e01b815260040160405180910390fd5b8391505061199e565b80156118cc5760075434146118065760075460405163082fc47b60e21b815260048101919091523460248201526044016104df565b6008546040516000916201000090046001600160a01b03169034908381818185875af1925050503d8060008114611859576040519150601f19603f3d011682016040523d82523d6000602084013e61185e565b606091505b505090508061188057604051630db2c7f160e31b815260040160405180910390fd5b604080516001815234602082015264ffffffffff8916917f599e0e7458510fc6240982cbfeb3a6d640707bc3457603c774d41cbe0c96f628910160405180910390a2849250505061199e565b60085461ffff80851691161115611908576008546040516340a0962960e11b815261ffff918216600482015290841660248201526044016104df565b60085460009061192290869061ffff166127106001611ac2565b905061192e818661229b565b9250801561199b57611957336008546001600160a01b03898116929162010000900416846119a6565b60408051600081526020810183905264ffffffffff8916917f599e0e7458510fc6240982cbfeb3a6d640707bc3457603c774d41cbe0c96f628910160405180910390a25b50505b949350505050565b6119b4848484846001611b0f565b61097a57604051635274afe760e01b81526001600160a01b03851660048201526024016104df565b6000546001600160a01b0316336001600160a01b0316146119fd57336104be565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080516020615b1783398151915254600203611a7d57604051633ee5aeb560e01b815260040160405180910390fd5b565b6001600160a01b038116600090815260046020908152604080832064ffffffffff861684529091529020805460ff19166001179055611abe82826116ea565b5050565b6000611af1611ad083611b81565b8015611aec575060008480611ae757611ae76122e0565b868809115b151590565b611afc868686611bae565b611b0691906122f6565b95945050505050565b6040516323b872dd60e01b60008181526001600160a01b038781166004528616602452604485905291602083606481808c5af192506001600051148316611b6f578383151615611b62573d6000823e3d81fd5b6000883b113d1516831692505b60405250600060605295945050505050565b60006002826003811115611b9757611b97611fad565b611ba19190612309565b60ff166001149050919050565b6000806000611bbd8686611c64565b9150915081600003611be257838181611bd857611bd86122e0565b0492505050611c5d565b818411611bf957611bf96003851502601118611c82565b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150505b9392505050565b60008060001983850993909202808410938190039390930393915050565b634e487b71600052806020526024601cfd5b6137dd8061233a83390190565b803561ffff81168114611cb357600080fd5b919050565b600060208284031215611cca57600080fd5b611c5d82611ca1565b6001600160a01b03811681146113bb57600080fd5b64ffffffffff811681146113bb57600080fd5b600080600060608486031215611d1057600080fd5b8335611d1b81611cd3565b9250602084013591506040840135611d3281611ce8565b809150509250925092565b600060208284031215611d4f57600080fd5b5035919050565b60008060008060808587031215611d6c57600080fd5b8435611d7781611ce8565b93506020850135611d8781611cd3565b92506040850135611d9781611cd3565b91506060850135611da781611cd3565b939692955090935050565b60008060008060008060c08789031215611dcb57600080fd5b8635611dd681611cd3565b9550602087013594506040870135611ded81611ce8565b93506060870135611dfd81611ce8565b92506080870135611e0d81611ce8565b9150611e1b60a08801611ca1565b90509295509295509295565b600060208284031215611e3957600080fd5b8135611c5d81611cd3565b80151581146113bb57600080fd5b600060208284031215611e6457600080fd5b8135611c5d81611e44565b600581106113bb57600080fd5b600080600060608486031215611e9157600080fd5b8335611e9c81611cd3565b92506020840135611eac81611e6f565b91506040840135611d3281611e44565b60008060008060808587031215611ed257600080fd5b8435611edd81611cd3565b9350602085013592506040850135611ef481611ce8565b9150611f0260608601611ca1565b905092959194509250565b602080825282518282018190526000918401906040840190835b81811015611f4c57835164ffffffffff16835260209384019390920191600101611f27565b509095945050505050565b60008060408385031215611f6a57600080fd5b8235611f7581611cd3565b91506020830135611f8581611e44565b809150509250929050565b600060208284031215611fa257600080fd5b8135611c5d81611ce8565b634e487b7160e01b600052602160045260246000fd5b60058110611fe157634e487b7160e01b600052602160045260246000fd5b9052565b60408101611ff38285611fc3565b82151560208301529392505050565b6101408101612011828d611fc3565b64ffffffffff9a8b1660208301526001600160a01b03998a1660408301529789166060820152958816608087015260a08601949094529190951660c084015293851660e08301529290931661010084015261012090920152919050565b634e487b7160e01b600052601160045260246000fd5b600064ffffffffff821664ffffffffff81036120a2576120a261206e565b60010192915050565b6001600160a01b038c8116825264ffffffffff8c1660208301528a16604082015261016081016120de606083018b611fc3565b6001600160a01b0398909816608082015260a081019690965264ffffffffff94851660c087015292841660e086015290831661010085015290911661012083015261014090910152949350505050565b60008060006060848603121561214357600080fd5b835161214e81611e44565b602085015190935061215f81611cd3565b6040850151909250611d3281611cd3565b64ffffffffff8616815260a0810161218b6020830187611fc3565b60408201949094526001600160a01b0392909216606083015264ffffffffff1660809091015292915050565b6000602082840312156121c957600080fd5b5051919050565b6000806000806000806000806000806101408b8d0312156121f057600080fd5b8a516121fb81611e6f565b60208c0151909a5061220c81611ce8565b60408c015190995061221d81611cd3565b60608c015190985061222e81611cd3565b60808c015190975061223f81611cd3565b60a08c015160c08d0151919750955061225781611cd3565b60e08c015190945061226881611ce8565b6101008c015190935061227a81611ce8565b8092505060006101208c01519050809150509295989b9194979a5092959850565b818103818111156122ae576122ae61206e565b92915050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b808201808211156122ae576122ae61206e565b600060ff83168061232a57634e487b7160e01b600052601260045260246000fd5b8060ff8416069150509291505056fe61020060405234801561001157600080fd5b506040516137dd3803806137dd833981016040819052610030916102f9565b600080546001600160a01b0319166001600160a01b038b1690811782556040518b92907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00556001600160a01b0389166100c45760405163d92e233d60e01b815260040160405180910390fd5b4264ffffffffff168564ffffffffff16116100f25760405163e0aa70c960e01b815260040160405180910390fd5b60006003896004811115610108576101086103c4565b1490506000818061012a575060008a6004811115610128576101286103c4565b145b90508115610192578364ffffffffff168664ffffffffff1610158061015c57508564ffffffffff168564ffffffffff16105b8061017457508364ffffffffff168564ffffffffff16115b1561019257604051631f8136eb60e31b815260040160405180910390fd5b6001600160a01b038d1660a05264ffffffffff8c16610120528960048111156101bd576101bd6103c4565b60808160048111156101d1576101d16103c4565b9052506001600160a01b0389811660c05260e08990528b16610100524264ffffffffff908116610140526002805464ffffffffff19169189169190911790558080156102945750604051630f24ca7d60e01b81526001600160a01b038a16600482015273772279251b563028a32cd1505e3f2f8485c746d990630f24ca7d90602401602060405180830381865af4158015610270573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061029491906103da565b151561016052505064ffffffffff938416610180529183166101a0529091166101c0526101e0525061040395505050505050565b80516001600160a01b03811681146102df57600080fd5b919050565b805164ffffffffff811681146102df57600080fd5b60008060008060008060008060008060006101608c8e03121561031b57600080fd5b6103248c6102c8565b9a5061033260208d016102e4565b995061034060408d016102c8565b985060608c01516005811061035457600080fd5b975061036260808d016102c8565b60a08d0151909750955061037860c08d016102e4565b945061038660e08d016102e4565b93506103956101008d016102e4565b92506103a46101208d016102e4565b915060006101408d01519050809150509295989b509295989b9093969950565b634e487b7160e01b600052602160045260246000fd5b6000602082840312156103ec57600080fd5b815180151581146103fc57600080fd5b9392505050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e051613189610654600039600081816103570152818161167601528181611c2c0152611c5501526000818161032e015281816115f90152818161164201528181611bf60152611ccb0152600081816103060152611bb80152600081816102e101528181611c790152611caa0152600061106f015260006106670152600081816105bc015261253f015260008181610644015261257e01526000818161062101528181610f470152818161119c0152818161129e0152818161136301528181611ab901528181611b5e01528181611e9501528181611fff015281816120e301526121fc0152600081816105fe015281816107c20152818161086101528181610e2601528181610ed4015281816110b5015281816111c2015281816112c401528181611389015281816116ea015281816118aa01528181611a4101528181611adf01528181611d2a01528181611f0e0152818161202d01528181612111015281816122fd01526123a3015260006125a60152600081816103e40152818161059b0152818161073101528181610a1601528181610b2301528181610b6001528181610b9e01528181610c7001528181610cad01528181610ceb01528181610da3015281816111580152818161125a0152818161144801528181611485015281816115a101528181611774015281816117b101528181611968015281816119f601528181611ddc01528181611e1701528181611e5401528181611f8d01526122c601526131896000f3fe6080604052600436106101445760003560e01c8063bcc4e4ab116100b6578063d95bd6c91161006f578063d95bd6c914610450578063e76a9f7a1461048c578063f2fde38b146104ac578063f37ebbae146104cc578063f71e0dca146104e1578063fbccedae1461050157600080fd5b8063bcc4e4ab146102c5578063c6a6b8ae1461038b578063c8796572146103c0578063cb248b86146103d5578063d88e7f4e14610410578063d8fc65191461043057600080fd5b806372b0d90c1161010857806372b0d90c1461021357806386d1a69f1461023357806389476069146102485780638da5cb5b14610268578063a0ef91df14610290578063ab67d5ee146102a557600080fd5b8063150b7a02146101505780633ccfd60b1461019957806344b1231f146101b057806345d30a17146101d35780634c02bf0b146101e857600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5061017b61016b36600461299c565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020015b60405180910390f35b3480156101a557600080fd5b506101ae610516565b005b3480156101bc57600080fd5b506101c5610589565b604051908152602001610190565b3480156101df57600080fd5b506001546101c5565b3480156101f457600080fd5b506101fd610599565b6040516101909a99989796959493929190612a9d565b34801561021f57600080fd5b506101ae61022e366004612b09565b6106a7565b34801561023f57600080fd5b506101c561070b565b34801561025457600080fd5b506101ae610263366004612b09565b610827565b34801561027457600080fd5b506000546040516001600160a01b039091168152602001610190565b34801561029c57600080fd5b506101ae61094b565b3480156102b157600080fd5b506101ae6102c0366004612b40565b6109f1565b3480156102d157600080fd5b506001546040805164ffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811682527f0000000000000000000000000000000000000000000000000000000000000000811660208301527f000000000000000000000000000000000000000000000000000000000000000016918101919091527f00000000000000000000000000000000000000000000000000000000000000006060820152608081019190915260a001610190565b34801561039757600080fd5b506103ab6103a6366004612b09565b610afb565b60408051928352602083019190915201610190565b3480156103cc57600080fd5b506103ab610c48565b3480156103e157600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006040516101909190612b5b565b34801561041c57600080fd5b506101ae61042b366004612b69565b610d7e565b34801561043c57600080fd5b506101ae61044b366004612b95565b610ea9565b34801561045c57600080fd5b5061046561105b565b6040805193151584526001600160a01b039283166020850152911690820152606001610190565b34801561049857600080fd5b506103ab6104a7366004612c03565b6113f1565b3480156104b857600080fd5b506101ae6104c7366004612b09565b61152a565b3480156104d857600080fd5b506101c561157b565b3480156104ed57600080fd5b506103ab6104fc366004612c58565b611744565b34801561050d57600080fd5b506101c5611866565b6000546001600160a01b0316336001600160a01b03161461055d57335b60405163060296c760e31b81526001600160a01b0390911660048201526024015b60405180910390fd5b610565611935565b61057f61057a6000546001600160a01b031690565b611964565b610587611b8c565b565b600061059442611bb4565b905090565b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000003060008080808080806105f66000546001600160a01b031690565b6002549097507f000000000000000000000000000000000000000000000000000000000000000096507f000000000000000000000000000000000000000000000000000000000000000095507f000000000000000000000000000000000000000000000000000000000000000094507f0000000000000000000000000000000000000000000000000000000000000000935064ffffffffff169150610699611d01565b905090919293949596979899565b6000546001600160a01b0316336001600160a01b0316146106c85733610533565b6106d0611935565b6001600160a01b0381166106f75760405163d92e233d60e01b815260040160405180910390fd5b61070081611964565b610708611b8c565b50565b600080546001600160a01b0316336001600160a01b03161461072d5733610533565b60037f0000000000000000000000000000000000000000000000000000000000000000600481111561076157610761612a65565b1461077f5760405163170e46a760e01b815260040160405180910390fd5b610787611935565b61078f611866565b905080600160008282546107a39190612cb0565b90915550506000546107e9906001600160a01b03166001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169083611d9d565b6040518181527fa1598fb976f7dd9df63fd18699c54a5744a6a95364166bbd0d77a2f6c8438b1f9060200160405180910390a1610824611b8c565b90565b6000546001600160a01b0316336001600160a01b0316146108485733610533565b610850611935565b610858611dd7565b801561089557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316145b156108b357604051637511124760e01b815260040160405180910390fd5b806109426108c96000546001600160a01b031690565b6040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa15801561090d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109319190612cc3565b6001600160a01b0384169190611d9d565b50610708611b8c565b6000546001600160a01b0316336001600160a01b03161461096c5733610533565b610974611935565b600080546040516001600160a01b039091169047908381818185875af1925050503d80600081146109c1576040519150601f19603f3d011682016040523d82523d6000602084013e6109c6565b606091505b50509050806109e857604051630db2c7f160e31b815260040160405180910390fd5b50610587611b8c565b6000546001600160a01b0316336001600160a01b031614610a125733610533565b60037f00000000000000000000000000000000000000000000000000000000000000006004811115610a4657610a46612a65565b03610a645760405163170e46a760e01b815260040160405180910390fd5b60025464ffffffffff9081169082161080610a8c57504264ffffffffff168164ffffffffff16105b15610aaa57604051631f63445360e21b815260040160405180910390fd5b6002805464ffffffffff191664ffffffffff83169081179091556040519081527f1cec69e52d87e8682b625bef9852ff9165537aac445d87a70aae8e6d506b4ca6906020015b60405180910390a150565b6000805481906001600160a01b0316336001600160a01b031614610b1f5733610533565b60017f00000000000000000000000000000000000000000000000000000000000000006004811115610b5357610b53612a65565b14158015610b93575060027f00000000000000000000000000000000000000000000000000000000000000006004811115610b9057610b90612a65565b14155b8015610bd1575060047f00000000000000000000000000000000000000000000000000000000000000006004811115610bce57610bce612a65565b14155b15610bef5760405163170e46a760e01b815260040160405180910390fd5b610bf7611935565b6001600160a01b038316610c1e5760405163d92e233d60e01b815260040160405180910390fd5b610c378360405180602001604052806000815250611e4d565b91509150610c43611b8c565b915091565b6000805481906001600160a01b0316336001600160a01b031614610c6c5733610533565b60017f00000000000000000000000000000000000000000000000000000000000000006004811115610ca057610ca0612a65565b14158015610ce0575060027f00000000000000000000000000000000000000000000000000000000000000006004811115610cdd57610cdd612a65565b14155b8015610d1e575060047f00000000000000000000000000000000000000000000000000000000000000006004811115610d1b57610d1b612a65565b14155b15610d3c5760405163170e46a760e01b815260040160405180910390fd5b610d44611935565b610d6e610d596000546001600160a01b031690565b60405180602001604052806000815250611e4d565b91509150610d7a611b8c565b9091565b6000546001600160a01b0316336001600160a01b031614610d9f5733610533565b60007f00000000000000000000000000000000000000000000000000000000000000006004811115610dd357610dd3612a65565b14610df15760405163170e46a760e01b815260040160405180910390fd5b610df9611935565b64ffffffffff811615610e0f57610e0f816109f1565b8115610e9d576000610e1f611d01565b9050610e567f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163330866124b8565b7f77acf75e237f9aae98f997395832d522bdb695e4a9bd07704936aa889a3667d181610e80611d01565b610e8a9190612cdc565b60405190815260200160405180910390a1505b610ea5611b8c565b5050565b6000546001600160a01b0316336001600160a01b031614610eca5733610533565b610ed2611935565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316148015610f695750610f16611dd7565b8015610f2f575060025464ffffffffff90811642909116105b80610f695750610f3d611dd7565b158015610f6957507f000000000000000000000000000000000000000000000000000000000000000081145b15610f8757604051637511124760e01b815260040160405180910390fd5b816001600160a01b03166342842e0e30610fa96000546001600160a01b031690565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260448101849052606401600060405180830381600087803b158015610ff857600080fd5b505af115801561100c573d6000803e3d6000fd5b50505050816001600160a01b03167f0620ef849d1449e38a93ed18dfc53b027a8b5fac0c0cb02d91c4621201d490148260405161104b91815260200190565b60405180910390a2610ea5611b8c565b6000806000611068611dd7565b15611154577f000000000000000000000000000000000000000000000000000000000000000061109e5750600092839250829150565b604051632590dc9d60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016600482015273772279251b563028a32cd1505e3f2f8485c746d990632590dc9d9060240160c060405180830381865af4925050508015611132575060408051601f3d908101601f1916820190925261112f91810190612cfa565b60015b6111425750600092839250829150565b50600198949750929550929350505050565b60017f0000000000000000000000000000000000000000000000000000000000000000600481111561118857611188612a65565b036112565760405163133f757160e31b81527f000000000000000000000000000000000000000000000000000000000000000060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906399fbab889060240161018060405180830381865afa92505050801561122e575060408051601f3d908101601f1916820190925261122b91810190612d94565b60015b61123e5750600092839250829150565b5060019e989d50969b50969950505050505050505050565b60047f0000000000000000000000000000000000000000000000000000000000000000600481111561128a5761128a612a65565b0361135457604051637ba03aad60e01b81527f000000000000000000000000000000000000000000000000000000000000000060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690637ba03aad9060240160e060405180830381865afa92505050801561132f575060408051601f3d908101601f1916820190925261132c91810190612e76565b60015b61133f5750600092839250829150565b50805160209091015160019591945092509050565b604051637ba03aad60e01b81527f000000000000000000000000000000000000000000000000000000000000000060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690637ba03aad9060240160c060405180830381865afa92505050801561132f575060408051601f3d908101601f1916820190925261132c91810190612f11565b6000805481906001600160a01b0316336001600160a01b0316146114155733610533565b61141d611935565b6001600160a01b0385166114445760405163d92e233d60e01b815260040160405180910390fd5b60027f0000000000000000000000000000000000000000000000000000000000000000600481111561147857611478612a65565b141580156114b8575060047f000000000000000000000000000000000000000000000000000000000000000060048111156114b5576114b5612a65565b14155b156114d65760405163170e46a760e01b815260040160405180910390fd5b6115168585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611e4d92505050565b91509150611522611b8c565b935093915050565b6000546001600160a01b0316336001600160a01b03161461154b5733610533565b6001600160a01b0381166115725760405163d92e233d60e01b815260040160405180910390fd5b610708816124f4565b600080546001600160a01b0316336001600160a01b03161461159d5733610533565b60037f000000000000000000000000000000000000000000000000000000000000000060048111156115d1576115d1612a65565b146115ef5760405163170e46a760e01b815260040160405180910390fd5b6115f7611935565b7f000000000000000000000000000000000000000000000000000000000000000064ffffffffff164264ffffffffff16101561166f57604051632869611760e11b815264ffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166004820152602401610554565b60006001547f000000000000000000000000000000000000000000000000000000000000000061169f9190612cdc565b905060006116ab611d01565b90508181116116bf5760009250505061173c565b6116c98282612cdc565b92506117116116e06000546001600160a01b031690565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169085611d9d565b8161171a611d01565b101561173957604051637511124760e01b815260040160405180910390fd5b50505b610824611b8c565b6000805481906001600160a01b0316336001600160a01b0316146117685733610533565b611770611935565b60027f000000000000000000000000000000000000000000000000000000000000000060048111156117a4576117a4612a65565b141580156117e4575060047f000000000000000000000000000000000000000000000000000000000000000060048111156117e1576117e1612a65565b14155b156118025760405163170e46a760e01b815260040160405180910390fd5b6118536118176000546001600160a01b031690565b85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611e4d92505050565b9150915061185f611b8c565b9250929050565b600080600154611874610589565b61187e9190612cdc565b9050600061188a611dd7565b61189557600061191d565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156118f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191d9190612cc3565b905080821061192c578061192e565b815b9250505090565b61193d612606565b60027f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005b55565b60037f0000000000000000000000000000000000000000000000000000000000000000600481111561199857611998612a65565b036119b65760405163170e46a760e01b815260040160405180910390fd5b60025464ffffffffff9081164290911610156119f257600254604051632869611760e11b815264ffffffffff9091166004820152602401610554565b60007f00000000000000000000000000000000000000000000000000000000000000006004811115611a2657611a26612a65565b03611a9457611a6881611a37611d01565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169190611d9d565b6040517f75c111ce67858e12d7a8820645ab89a73cdac9c8247242a82a3ec701a230ce9b90600090a150565b604051632142170760e11b81523060048201526001600160a01b0382811660248301527f000000000000000000000000000000000000000000000000000000000000000060448301527f000000000000000000000000000000000000000000000000000000000000000016906342842e0e90606401600060405180830381600087803b158015611b2357600080fd5b505af1158015611b37573d6000803e3d6000fd5b505050507f21b5e5af444253dd827b3403805204076c4622331e173f49f94661f4288642547f0000000000000000000000000000000000000000000000000000000000000000604051610af091815260200190565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00611961565b60007f000000000000000000000000000000000000000000000000000000000000000064ffffffffff168264ffffffffff161015611bf457506000919050565b7f000000000000000000000000000000000000000000000000000000000000000064ffffffffff168264ffffffffff1610611c5057507f0000000000000000000000000000000000000000000000000000000000000000919050565b611cfb7f0000000000000000000000000000000000000000000000000000000000000000611c9e7f000000000000000000000000000000000000000000000000000000000000000085612fbf565b64ffffffffff16611cef7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612fbf565b64ffffffffff16612651565b92915050565b6000611d0b611dd7565b611d155750600090565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015611d79573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105949190612cc3565b611daa8383836001612707565b611dd257604051635274afe760e01b81526001600160a01b0384166004820152602401610554565b505050565b6000807f00000000000000000000000000000000000000000000000000000000000000006004811115611e0c57611e0c612a65565b1480610594575060037f00000000000000000000000000000000000000000000000000000000000000006004811115611e4757611e47612a65565b14905090565b60008060017f00000000000000000000000000000000000000000000000000000000000000006004811115611e8457611e84612a65565b03611f8657604080516080810182527f000000000000000000000000000000000000000000000000000000000000000081526001600160a01b03868116602083019081526001600160801b0383850181815260608501828152955163fc6f786560e01b815294516004860152915183166024850152905181166044840152925190921660648201527f00000000000000000000000000000000000000000000000000000000000000009091169063fc6f78659060840160408051808303816000875af1158015611f58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7c9190612fdc565b9092509050612478565b60008060047f00000000000000000000000000000000000000000000000000000000000000006004811115611fbd57611fbd612a65565b036120ad576040805160c081018252600080825260208201819052818301819052606082018190526080820181905260a08201529051637ba03aad60e01b81527f000000000000000000000000000000000000000000000000000000000000000060048201526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637ba03aad9060240160e060405180830381865afa158015612074573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120989190612e76565b508051602090910151909350915061218c9050565b6040805160a0810182526000808252602082018190528183018190526060820181905260808201529051637ba03aad60e01b81527f000000000000000000000000000000000000000000000000000000000000000060048201526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637ba03aad9060240160c060405180830381865afa158015612158573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217c9190612f11565b5080516020909101519093509150505b6000612198838861276d565b905060006121a6838961276d565b60408051600160f81b6020820152601160f81b60218201528151600281830381018252602283018181526082840190945293945092600092916042015b60608152602001906001900390816121e35790505090507f000000000000000000000000000000000000000000000000000000000000000060008060008c604051602001612235959493929190613046565b604051602081830303815290604052816000815181106122575761225761308e565b602002602001018190525085858b604051602001612295939291906001600160a01b0393841681529183166020830152909116604082015260600190565b604051602081830303815290604052816001815181106122b7576122b761308e565b602090810291909101015260047f000000000000000000000000000000000000000000000000000000000000000060048111156122f6576122f6612a65565b036123a1577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dd46508f838360405160200161233d9291906130a4565b604051602081830303815290604052426040518363ffffffff1660e01b815260040161236a92919061311b565b600060405180830381600087803b15801561238457600080fd5b505af1158015612398573d6000803e3d6000fd5b50505050612443565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dd46508f83836040516020016123e39291906130a4565b604051602081830303815290604052426040518363ffffffff1660e01b815260040161241092919061311b565b600060405180830381600087803b15801561242a57600080fd5b505af115801561243e573d6000803e3d6000fd5b505050505b8361244e878c61276d565b6124589190612cdc565b975082612465868c61276d565b61246f9190612cdc565b96505050505050505b60408051838152602081018390527f49d512bf9cb224241c05691e73eb9fab078cf350c7dbcbcf66788f1fc0cc8b0b910160405180910390a19250929050565b6124c68484848460016127fd565b6124ee57604051635274afe760e01b81526001600160a01b0385166004820152602401610554565b50505050565b6000546001600160a01b0316336001600160a01b0316146125155733610533565b6000546001600160a01b031661252a8261286f565b604051634c7ababd60e01b815264ffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660048201526001600160a01b03838116602483015282811660448301527f0000000000000000000000000000000000000000000000000000000000000000811660648301527f00000000000000000000000000000000000000000000000000000000000000001690634c7ababd90608401600060405180830381600087803b1580156125ea57600080fd5b505af11580156125fe573d6000803e3d6000fd5b505050505050565b612633600060027f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f006128e0565b1561058757604051633ee5aeb560e01b815260040160405180910390fd5b600080600061266086866128e7565b91509150816000036126855783818161267b5761267b61313d565b0492505050612700565b81841161269c5761269c6003851502601118612905565b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150505b9392505050565b60405163a9059cbb60e01b60008181526001600160a01b038616600452602485905291602083604481808b5af192506001600051148316612761578383151615612754573d6000823e3d81fd5b6000873b113d1516831692505b60405250949350505050565b60006001600160a01b038316156127ed576040516370a0823160e01b81526001600160a01b0383811660048301528416906370a0823190602401602060405180830381865afa1580156127c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e89190612cc3565b612700565b506001600160a01b031631919050565b6040516323b872dd60e01b60008181526001600160a01b038781166004528616602452604485905291602083606481808c5af19250600160005114831661285d578383151615612850573d6000823e3d81fd5b6000883b113d1516831692505b60405250600060605295945050505050565b6000546001600160a01b0316336001600160a01b0316146128905733610533565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5414919050565b60008060001983850993909202808410938190039390930393915050565b634e487b71600052806020526024601cfd5b6001600160a01b038116811461070857600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160c0810167ffffffffffffffff811182821017156129655761296561292c565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156129945761299461292c565b604052919050565b600080600080608085870312156129b257600080fd5b84356129bd81612917565b935060208501356129cd81612917565b925060408501359150606085013567ffffffffffffffff8111156129f057600080fd5b8501601f81018713612a0157600080fd5b803567ffffffffffffffff811115612a1b57612a1b61292c565b612a2e601f8201601f191660200161296b565b818152886020838501011115612a4357600080fd5b8160208401602083013760006020838301015280935050505092959194509250565b634e487b7160e01b600052602160045260246000fd5b60058110612a9957634e487b7160e01b600052602160045260246000fd5b9052565b6101408101612aac828d612a7b565b64ffffffffff9a8b1660208301526001600160a01b03998a1660408301529789166060820152958816608087015260a08601949094529190951660c084015293851660e08301529290931661010084015261012090920152919050565b600060208284031215612b1b57600080fd5b813561270081612917565b803564ffffffffff81168114612b3b57600080fd5b919050565b600060208284031215612b5257600080fd5b61270082612b26565b60208101611cfb8284612a7b565b60008060408385031215612b7c57600080fd5b82359150612b8c60208401612b26565b90509250929050565b60008060408385031215612ba857600080fd5b8235612bb381612917565b946020939093013593505050565b60008083601f840112612bd357600080fd5b50813567ffffffffffffffff811115612beb57600080fd5b60208301915083602082850101111561185f57600080fd5b600080600060408486031215612c1857600080fd5b8335612c2381612917565b9250602084013567ffffffffffffffff811115612c3f57600080fd5b612c4b86828701612bc1565b9497909650939450505050565b60008060208385031215612c6b57600080fd5b823567ffffffffffffffff811115612c8257600080fd5b612c8e85828601612bc1565b90969095509350505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115611cfb57611cfb612c9a565b600060208284031215612cd557600080fd5b5051919050565b81810381811115611cfb57611cfb612c9a565b8051612b3b81612917565b60008060008060008060c08789031215612d1357600080fd5b8651612d1e81612917565b6020880151909650612d2f81612917565b6040880151606089015160808a015160a0909a0151989b929a5090989097909650945092505050565b805162ffffff81168114612b3b57600080fd5b8051600281900b8114612b3b57600080fd5b80516001600160801b0381168114612b3b57600080fd5b6000806000806000806000806000806000806101808d8f031215612db757600080fd5b8c516bffffffffffffffffffffffff81168114612dd357600080fd5b9b50612de160208e01612cef565b9a50612def60408e01612cef565b9950612dfd60608e01612cef565b9850612e0b60808e01612d58565b9750612e1960a08e01612d6b565b9650612e2760c08e01612d6b565b9550612e3560e08e01612d7d565b6101008e01516101208f015191965094509250612e556101408e01612d7d565b9150612e646101608e01612d7d565b90509295989b509295989b509295989b565b60008082840360e0811215612e8a57600080fd5b60c0811215612e9857600080fd5b50612ea1612942565b8351612eac81612917565b81526020840151612ebc81612917565b60208201526040840151612ecf81612917565b60408201526060840151612ee281612917565b6060820152612ef360808501612d58565b608082015260a0848101519082015260c09093015192949293505050565b60008082840360c0811215612f2557600080fd5b60a0811215612f3357600080fd5b5060405160a0810167ffffffffffffffff81118282101715612f5757612f5761292c565b6040528351612f6581612917565b81526020840151612f7581612917565b6020820152612f8660408501612d58565b6040820152612f9760608501612d6b565b60608201526080840151612faa81612917565b608082015260a0939093015192949293505050565b64ffffffffff8281168282160390811115611cfb57611cfb612c9a565b60008060408385031215612fef57600080fd5b505080516020909101519092909150565b6000815180845260005b818110156130265760208185018101518683018201520161300a565b506000602082860101526020601f19601f83011685010191505092915050565b8581528460208201526001600160801b03841660408201526001600160801b038316606082015260a06080820152600061308360a0830184613000565b979650505050505050565b634e487b7160e01b600052603260045260246000fd5b6040815260006130b76040830185613000565b828103602084015280845180835260208301915060208160051b8401016020870160005b8381101561310d57601f198684030185526130f7838351613000565b60209586019590935091909101906001016130db565b509098975050505050505050565b60408152600061312e6040830185613000565b90508260208301529392505050565b634e487b7160e01b600052601260045260246000fdfea26469706673582212205e0ebeba21fb11c32f9f918225611c62b4fccd383f033d1e52d4dffb9ca33c0664736f6c634300081e00339b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a26469706673582212202f54d0910f68763ed8855f2cb832a24f2633ccbcdd5af67c3a54ef7e782382d564736f6c634300081e0033