0x60806040526004361061023f5760003560e01c80637dfcbe341161012e578063bf56b371116100ab578063f2fde38b1161006f578063f2fde38b146106c9578063f887ea40146106e9578063f8b45b0514610709578063fad8cb331461071f578063ffb54a991461073e57600080fd5b8063bf56b37114610622578063c45a015514610638578063c8d1293d14610658578063c9567bf91461066e578063dd62ed3e1461068357600080fd5b80638da5cb5b116100f25780638da5cb5b146105785780638ea5220f1461059657806395d89b41146105b6578063a8aa1b31146105e2578063a9059cbb1461060257600080fd5b80637dfcbe34146104ca57806389215317146104eb57806389291a8f14610501578063893d20e8146105165780638b42507f1461054857600080fd5b80634551bbe9116101bc57806370a082311161018057806370a082311461043e578063715018a6146104745780637437681e1461048957806374a17a9e1461049f578063751039fc146104b557600080fd5b80634551bbe9146103a357806347062402146103d05780634a74bb02146103e6578063571ac8b01461040757806366eb37851461042757600080fd5b8063246ea64e11610203578063246ea64e146103165780632b112e491461032c578063313ce567146103415780633c6d74fb1461035d5780633f4218e01461037357600080fd5b80630445b6671461024b57806306fdde0314610274578063095ea7b3146102b157806318160ddd146102e157806323b872dd146102f657600080fd5b3661024657005b600080fd5b34801561025757600080fd5b50610261601b5481565b6040519081526020015b60405180910390f35b34801561028057600080fd5b5060408051808201909152600b81526a476f6d2046696e616e636560a81b60208201525b60405161026b91906118e5565b3480156102bd57600080fd5b506102d16102cc366004611948565b61075f565b604051901515815260200161026b565b3480156102ed57600080fd5b50600154610261565b34801561030257600080fd5b506102d1610311366004611974565b6107cc565b34801561032257600080fd5b5061026160125481565b34801561033857600080fd5b5061026161088e565b34801561034d57600080fd5b506040516012815260200161026b565b34801561036957600080fd5b50610261600d5481565b34801561037f57600080fd5b506102d161038e3660046119b5565b60086020526000908152604090205460ff1681565b3480156103af57600080fd5b506102616103be3660046119b5565b600f6020526000908152604090205481565b3480156103dc57600080fd5b50610261600c5481565b3480156103f257600080fd5b506018546102d190600160a81b900460ff1681565b34801561041357600080fd5b506102d16104223660046119b5565b6108e0565b34801561043357600080fd5b5061043c6108ee565b005b34801561044a57600080fd5b506102616104593660046119b5565b6001600160a01b031660009081526002602052604090205490565b34801561048057600080fd5b5061043c61092b565b34801561049557600080fd5b5061026160195481565b3480156104ab57600080fd5b50610261600e5481565b3480156104c157600080fd5b5061043c61095f565b3480156104d657600080fd5b506007546102d190600160a01b900460ff1681565b3480156104f757600080fd5b5061026160115481565b34801561050d57600080fd5b5061043c61099f565b34801561052257600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161026b565b34801561055457600080fd5b506102d16105633660046119b5565b60096020526000908152604090205460ff1681565b34801561058457600080fd5b506000546001600160a01b0316610530565b3480156105a257600080fd5b50601854610530906001600160a01b031681565b3480156105c257600080fd5b50604080518082019091526003815262474f4d60e81b60208201526102a4565b3480156105ee57600080fd5b50601654610530906001600160a01b031681565b34801561060e57600080fd5b506102d161061d366004611948565b610a0f565b34801561062e57600080fd5b50610261600a5481565b34801561064457600080fd5b50601754610530906001600160a01b031681565b34801561066457600080fd5b5061026160105481565b34801561067a57600080fd5b5061043c610a1c565b34801561068f57600080fd5b5061026161069e3660046119d2565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156106d557600080fd5b5061043c6106e43660046119b5565b610c38565b3480156106f557600080fd5b50601554610530906001600160a01b031681565b34801561071557600080fd5b50610261601a5481565b34801561072b57600080fd5b5061043c6018805460ff60a81b19169055565b34801561074a57600080fd5b506018546102d190600160b01b900460ff1681565b3360008181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107ba9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610879576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600382528381203382529091529190912054610854918490610cd0565b6001600160a01b03851660009081526003602090815260408083203384529091529020555b610884848484610d0a565b90505b9392505050565b6007546001600160a01b03166000908152600260205260408120546108db906006546001600160a01b03166000908152600260205260409020546108d590600154906110f4565b906110f4565b905090565b60006107c68260001961075f565b6000546001600160a01b031633146109215760405162461bcd60e51b815260040161091890611a0b565b60405180910390fd5b610929611136565b565b6000546001600160a01b031633146109555760405162461bcd60e51b815260040161091890611a0b565b61092960006112bb565b6000546001600160a01b031633146109895760405162461bcd60e51b815260040161091890611a0b565b61099460015461130b565b61092960015461133a565b6000546001600160a01b031633146109c95760405162461bcd60e51b815260040161091890611a0b565b478015610a0c576018546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610a0a573d6000803e3d6000fd5b505b50565b6000610887338484610d0a565b6000546001600160a01b03163314610a465760405162461bcd60e51b815260040161091890611a0b565b601560009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abd9190611a40565b6005546040516364e329cb60e11b81523060048201526001600160a01b03918216602482015291169063c9c65396906044016020604051808303816000875af1158015610b0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b329190611a40565b601680546001600160a01b0319166001600160a01b039283169081179091556000908152600960209081526040808320805460ff1916600117905530808452600383528184206015805487168652908452828520600019905554818552600290935292205492169163f305d719914791600080610bb76000546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610bd996959493929190611a5d565b60606040518083038185885af1158015610bf7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610c1c9190611a98565b505043600a55506018805460ff60b01b1916600160b01b179055565b6000546001600160a01b03163314610c625760405162461bcd60e51b815260040161091890611a0b565b6001600160a01b038116610cc75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610918565b610a0c816112bb565b60008184841115610cf45760405162461bcd60e51b815260040161091891906118e5565b506000610d018486611adc565b95945050505050565b6001600160a01b03831660009081526008602052604081205460ff16158015610d4c57506001600160a01b03831660009081526008602052604090205460ff16155b15610da257601854600160b01b900460ff16610da25760405162461bcd60e51b81526020600482015260156024820152743830ba34b2b731b29034b99030903b34b93a3ab29760591b6044820152606401610918565b601854600160a01b900460ff1615610dc657610dbf848484611369565b9050610887565b60195482111580610def57506001600160a01b03841660009081526009602052604090205460ff165b610e205760405162461bcd60e51b81526020600482015260026024820152610e8f60f31b6044820152606401610918565b6001600160a01b038316600090815260096020526040902054829060ff16158015610e545750600754600160a01b900460ff165b15610eb657601a546001600160a01b038516600090815260026020526040902054610e7f908561144f565b1115610eb65760405162461bcd60e51b81526020600482015260066024820152651dd85b1b195d60d21b6044820152606401610918565b6016546001600160a01b03163314801590610edb5750601854600160a01b900460ff16155b8015610ef05750601854600160a81b900460ff165b8015610f0d5750601b543060009081526002602052604090205410155b8015610f3257506001600160a01b03851660009081526008602052604090205460ff16155b8015610f5757506001600160a01b03841660009081526008602052604090205460ff16155b15610f6457610f64611136565b610f6e85856114ae565b15610f8357601254610f809084611aef565b92505b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038816600090815260029091529190912054610fd5918590610cd0565b6001600160a01b0386166000908152600260209081526040808320939093556008905290812054919350839160ff1615801561102a57506001600160a01b03851660009081526008602052604090205460ff16155b611034578361103f565b61103f8686866114e2565b6001600160a01b038616600090815260026020526040902054909150611065908261144f565b6001600160a01b0380871660008181526002602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110b99085815260200190565b60405180910390a35050506001600160a01b038084166000908152600f60205260408082204290819055928516825290205560019392505050565b600061088783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610cd0565b6018805460ff60a01b1916600160a01b179055306000908152600260205260408120546012549091906111779060649061117190859061160a565b9061168c565b9050600061119a600261117160646111716010548861160a90919063ffffffff16565b905060006111ac836108d586856110f4565b90506111b7816116ce565b60065460405163a9059cbb60e01b81526001600160a01b03909116600482015260248101849052309063a9059cbb906044016020604051808303816000875af1158015611208573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122c9190611b06565b5060004790506000611253600261117160646111716010548761160a90919063ffffffff16565b9050831561126557611265848261182d565b81156112a6576018546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156112a4573d6000803e3d6000fd5b505b50506018805460ff60a01b1916905550505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b031633146113355760405162461bcd60e51b815260040161091890611a0b565b601955565b6000546001600160a01b031633146113645760405162461bcd60e51b815260040161091890611a0b565b601a55565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526002909152918220546113ba918490610cd0565b6001600160a01b0380861660009081526002602052604080822093909355908516815220546113e9908361144f565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061143d9086815260200190565b60405180910390a35060019392505050565b60008061145c8385611b28565b9050838110156108875760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610918565b6016546000906001600160a01b03838116911614801561088757506018546001600160a01b03848116911614905092915050565b6001600160a01b0383166000908152600f602052604081205481904790829061150b9042611adc565b90506201518081101561152257600d549250611533565b6201518081111561153357600e5492505b6016546000906001600160a01b0388811691161461155357600c5461156a565b6014546115609084611b3b565b61156a9085611adc565b9050600061157d6064611171898561160a565b3060009081526002602052604090205490915061159a908261144f565b30600081815260026020526040908190209290925590516001600160a01b038b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115eb9085815260200190565b60405180910390a36115fd87826110f4565b9998505050505050505050565b60008260000361161c575060006107c6565b60006116288385611aef565b9050826116358583611b3b565b146108875760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610918565b600061088783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118b7565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061170357611703611b5d565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561175c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117809190611a40565b8160018151811061179357611793611b5d565b60200260200101906001600160a01b031690816001600160a01b0316815250506117bd308361075f565b5060155460405163791ac94760e01b81526001600160a01b039091169063791ac947906117f7908590600090869030904290600401611b73565b600060405180830381600087803b15801561181157600080fd5b505af1158015611825573d6000803e3d6000fd5b505050505050565b601554600b5460405163f305d71960e01b81526001600160a01b039283169263f305d71992859261186d9230928992600092839216904290600401611a5d565b60606040518083038185885af115801561188b573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906118b09190611a98565b5050505050565b600081836118d85760405162461bcd60e51b815260040161091891906118e5565b506000610d018486611b3b565b600060208083528351808285015260005b81811015611912578581018301518582016040015282016118f6565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610a0c57600080fd5b6000806040838503121561195b57600080fd5b823561196681611933565b946020939093013593505050565b60008060006060848603121561198957600080fd5b833561199481611933565b925060208401356119a481611933565b929592945050506040919091013590565b6000602082840312156119c757600080fd5b813561088781611933565b600080604083850312156119e557600080fd5b82356119f081611933565b91506020830135611a0081611933565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611a5257600080fd5b815161088781611933565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b600080600060608486031215611aad57600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b818103818111156107c6576107c6611ac6565b80820281158282048414176107c6576107c6611ac6565b600060208284031215611b1857600080fd5b8151801515811461088757600080fd5b808201808211156107c6576107c6611ac6565b600082611b5857634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611bc35784516001600160a01b031683529383019391830191600101611b9e565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212200dc99072b8001cfd0324a9917820639338f370a1e0191d2921a17763a20751f864736f6c63430008130033
0x6080604052620000126012600a620004a5565b6200002290633b9aca00620004b6565b6001819055600680546001600160a01b031990811661dead908117909255600780546001600160a81b031916600160a01b179055600b805490911690911790556002600c819055600d819055600e8190556000601081905560646011819055601291909155601381905566038d7ea4c6800060145560188054600162ffff0160a01b031916750100140775c65eb1d2cd5b1724f589f007f3a5d202c217905591620000cd91620004b6565b620000d99190620004d0565b60195560646001546002620000ef9190620004b6565b620000fb9190620004d0565b601a556001546200010f906101f4620002aa565b601b553480156200011f57600080fd5b506200012b33620002fd565b601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000190573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b69190620004f3565b600580546001600160a01b0319166001600160a01b039283161790556000805482168152600860209081526040808320805460ff19908116600190811790925560188054871686528386208054831684179055308087528487208054841685179055865488168752600986528487208054841685179055905487168652838620805483168417905585528285208054821683179055600654861685528285208054909116821790555483548516845260028352818420819055835491519081529316927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000575565b6000620002f483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200034d60201b60201c565b90505b92915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600081836200037a5760405162461bcd60e51b815260040162000371919062000525565b60405180910390fd5b506000620003898486620004d0565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003e9578160001904821115620003cd57620003cd62000392565b80851615620003db57918102915b93841c9390800290620003ad565b509250929050565b6000826200040257506001620002f7565b816200041157506000620002f7565b81600181146200042a5760028114620004355762000455565b6001915050620002f7565b60ff84111562000449576200044962000392565b50506001821b620002f7565b5060208310610133831016604e8410600b84101617156200047a575081810a620002f7565b620004868383620003a8565b80600019048211156200049d576200049d62000392565b029392505050565b6000620002f460ff841683620003f1565b8082028115828204841417620002f757620002f762000392565b600082620004ee57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200050657600080fd5b81516001600160a01b03811681146200051e57600080fd5b9392505050565b600060208083528351808285015260005b81811015620005545785810183015185820160400152820162000536565b506000604082860101526040601f19601f8301168501019250505092915050565b611c1a80620005856000396000f3fe60806040526004361061023f5760003560e01c80637dfcbe341161012e578063bf56b371116100ab578063f2fde38b1161006f578063f2fde38b146106c9578063f887ea40146106e9578063f8b45b0514610709578063fad8cb331461071f578063ffb54a991461073e57600080fd5b8063bf56b37114610622578063c45a015514610638578063c8d1293d14610658578063c9567bf91461066e578063dd62ed3e1461068357600080fd5b80638da5cb5b116100f25780638da5cb5b146105785780638ea5220f1461059657806395d89b41146105b6578063a8aa1b31146105e2578063a9059cbb1461060257600080fd5b80637dfcbe34146104ca57806389215317146104eb57806389291a8f14610501578063893d20e8146105165780638b42507f1461054857600080fd5b80634551bbe9116101bc57806370a082311161018057806370a082311461043e578063715018a6146104745780637437681e1461048957806374a17a9e1461049f578063751039fc146104b557600080fd5b80634551bbe9146103a357806347062402146103d05780634a74bb02146103e6578063571ac8b01461040757806366eb37851461042757600080fd5b8063246ea64e11610203578063246ea64e146103165780632b112e491461032c578063313ce567146103415780633c6d74fb1461035d5780633f4218e01461037357600080fd5b80630445b6671461024b57806306fdde0314610274578063095ea7b3146102b157806318160ddd146102e157806323b872dd146102f657600080fd5b3661024657005b600080fd5b34801561025757600080fd5b50610261601b5481565b6040519081526020015b60405180910390f35b34801561028057600080fd5b5060408051808201909152600b81526a476f6d2046696e616e636560a81b60208201525b60405161026b91906118e5565b3480156102bd57600080fd5b506102d16102cc366004611948565b61075f565b604051901515815260200161026b565b3480156102ed57600080fd5b50600154610261565b34801561030257600080fd5b506102d1610311366004611974565b6107cc565b34801561032257600080fd5b5061026160125481565b34801561033857600080fd5b5061026161088e565b34801561034d57600080fd5b506040516012815260200161026b565b34801561036957600080fd5b50610261600d5481565b34801561037f57600080fd5b506102d161038e3660046119b5565b60086020526000908152604090205460ff1681565b3480156103af57600080fd5b506102616103be3660046119b5565b600f6020526000908152604090205481565b3480156103dc57600080fd5b50610261600c5481565b3480156103f257600080fd5b506018546102d190600160a81b900460ff1681565b34801561041357600080fd5b506102d16104223660046119b5565b6108e0565b34801561043357600080fd5b5061043c6108ee565b005b34801561044a57600080fd5b506102616104593660046119b5565b6001600160a01b031660009081526002602052604090205490565b34801561048057600080fd5b5061043c61092b565b34801561049557600080fd5b5061026160195481565b3480156104ab57600080fd5b50610261600e5481565b3480156104c157600080fd5b5061043c61095f565b3480156104d657600080fd5b506007546102d190600160a01b900460ff1681565b3480156104f757600080fd5b5061026160115481565b34801561050d57600080fd5b5061043c61099f565b34801561052257600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161026b565b34801561055457600080fd5b506102d16105633660046119b5565b60096020526000908152604090205460ff1681565b34801561058457600080fd5b506000546001600160a01b0316610530565b3480156105a257600080fd5b50601854610530906001600160a01b031681565b3480156105c257600080fd5b50604080518082019091526003815262474f4d60e81b60208201526102a4565b3480156105ee57600080fd5b50601654610530906001600160a01b031681565b34801561060e57600080fd5b506102d161061d366004611948565b610a0f565b34801561062e57600080fd5b50610261600a5481565b34801561064457600080fd5b50601754610530906001600160a01b031681565b34801561066457600080fd5b5061026160105481565b34801561067a57600080fd5b5061043c610a1c565b34801561068f57600080fd5b5061026161069e3660046119d2565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156106d557600080fd5b5061043c6106e43660046119b5565b610c38565b3480156106f557600080fd5b50601554610530906001600160a01b031681565b34801561071557600080fd5b50610261601a5481565b34801561072b57600080fd5b5061043c6018805460ff60a81b19169055565b34801561074a57600080fd5b506018546102d190600160b01b900460ff1681565b3360008181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107ba9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610879576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600382528381203382529091529190912054610854918490610cd0565b6001600160a01b03851660009081526003602090815260408083203384529091529020555b610884848484610d0a565b90505b9392505050565b6007546001600160a01b03166000908152600260205260408120546108db906006546001600160a01b03166000908152600260205260409020546108d590600154906110f4565b906110f4565b905090565b60006107c68260001961075f565b6000546001600160a01b031633146109215760405162461bcd60e51b815260040161091890611a0b565b60405180910390fd5b610929611136565b565b6000546001600160a01b031633146109555760405162461bcd60e51b815260040161091890611a0b565b61092960006112bb565b6000546001600160a01b031633146109895760405162461bcd60e51b815260040161091890611a0b565b61099460015461130b565b61092960015461133a565b6000546001600160a01b031633146109c95760405162461bcd60e51b815260040161091890611a0b565b478015610a0c576018546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610a0a573d6000803e3d6000fd5b505b50565b6000610887338484610d0a565b6000546001600160a01b03163314610a465760405162461bcd60e51b815260040161091890611a0b565b601560009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abd9190611a40565b6005546040516364e329cb60e11b81523060048201526001600160a01b03918216602482015291169063c9c65396906044016020604051808303816000875af1158015610b0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b329190611a40565b601680546001600160a01b0319166001600160a01b039283169081179091556000908152600960209081526040808320805460ff1916600117905530808452600383528184206015805487168652908452828520600019905554818552600290935292205492169163f305d719914791600080610bb76000546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610bd996959493929190611a5d565b60606040518083038185885af1158015610bf7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610c1c9190611a98565b505043600a55506018805460ff60b01b1916600160b01b179055565b6000546001600160a01b03163314610c625760405162461bcd60e51b815260040161091890611a0b565b6001600160a01b038116610cc75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610918565b610a0c816112bb565b60008184841115610cf45760405162461bcd60e51b815260040161091891906118e5565b506000610d018486611adc565b95945050505050565b6001600160a01b03831660009081526008602052604081205460ff16158015610d4c57506001600160a01b03831660009081526008602052604090205460ff16155b15610da257601854600160b01b900460ff16610da25760405162461bcd60e51b81526020600482015260156024820152743830ba34b2b731b29034b99030903b34b93a3ab29760591b6044820152606401610918565b601854600160a01b900460ff1615610dc657610dbf848484611369565b9050610887565b60195482111580610def57506001600160a01b03841660009081526009602052604090205460ff165b610e205760405162461bcd60e51b81526020600482015260026024820152610e8f60f31b6044820152606401610918565b6001600160a01b038316600090815260096020526040902054829060ff16158015610e545750600754600160a01b900460ff165b15610eb657601a546001600160a01b038516600090815260026020526040902054610e7f908561144f565b1115610eb65760405162461bcd60e51b81526020600482015260066024820152651dd85b1b195d60d21b6044820152606401610918565b6016546001600160a01b03163314801590610edb5750601854600160a01b900460ff16155b8015610ef05750601854600160a81b900460ff165b8015610f0d5750601b543060009081526002602052604090205410155b8015610f3257506001600160a01b03851660009081526008602052604090205460ff16155b8015610f5757506001600160a01b03841660009081526008602052604090205460ff16155b15610f6457610f64611136565b610f6e85856114ae565b15610f8357601254610f809084611aef565b92505b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038816600090815260029091529190912054610fd5918590610cd0565b6001600160a01b0386166000908152600260209081526040808320939093556008905290812054919350839160ff1615801561102a57506001600160a01b03851660009081526008602052604090205460ff16155b611034578361103f565b61103f8686866114e2565b6001600160a01b038616600090815260026020526040902054909150611065908261144f565b6001600160a01b0380871660008181526002602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110b99085815260200190565b60405180910390a35050506001600160a01b038084166000908152600f60205260408082204290819055928516825290205560019392505050565b600061088783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610cd0565b6018805460ff60a01b1916600160a01b179055306000908152600260205260408120546012549091906111779060649061117190859061160a565b9061168c565b9050600061119a600261117160646111716010548861160a90919063ffffffff16565b905060006111ac836108d586856110f4565b90506111b7816116ce565b60065460405163a9059cbb60e01b81526001600160a01b03909116600482015260248101849052309063a9059cbb906044016020604051808303816000875af1158015611208573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122c9190611b06565b5060004790506000611253600261117160646111716010548761160a90919063ffffffff16565b9050831561126557611265848261182d565b81156112a6576018546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156112a4573d6000803e3d6000fd5b505b50506018805460ff60a01b1916905550505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b031633146113355760405162461bcd60e51b815260040161091890611a0b565b601955565b6000546001600160a01b031633146113645760405162461bcd60e51b815260040161091890611a0b565b601a55565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526002909152918220546113ba918490610cd0565b6001600160a01b0380861660009081526002602052604080822093909355908516815220546113e9908361144f565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061143d9086815260200190565b60405180910390a35060019392505050565b60008061145c8385611b28565b9050838110156108875760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610918565b6016546000906001600160a01b03838116911614801561088757506018546001600160a01b03848116911614905092915050565b6001600160a01b0383166000908152600f602052604081205481904790829061150b9042611adc565b90506201518081101561152257600d549250611533565b6201518081111561153357600e5492505b6016546000906001600160a01b0388811691161461155357600c5461156a565b6014546115609084611b3b565b61156a9085611adc565b9050600061157d6064611171898561160a565b3060009081526002602052604090205490915061159a908261144f565b30600081815260026020526040908190209290925590516001600160a01b038b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115eb9085815260200190565b60405180910390a36115fd87826110f4565b9998505050505050505050565b60008260000361161c575060006107c6565b60006116288385611aef565b9050826116358583611b3b565b146108875760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610918565b600061088783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118b7565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061170357611703611b5d565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561175c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117809190611a40565b8160018151811061179357611793611b5d565b60200260200101906001600160a01b031690816001600160a01b0316815250506117bd308361075f565b5060155460405163791ac94760e01b81526001600160a01b039091169063791ac947906117f7908590600090869030904290600401611b73565b600060405180830381600087803b15801561181157600080fd5b505af1158015611825573d6000803e3d6000fd5b505050505050565b601554600b5460405163f305d71960e01b81526001600160a01b039283169263f305d71992859261186d9230928992600092839216904290600401611a5d565b60606040518083038185885af115801561188b573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906118b09190611a98565b5050505050565b600081836118d85760405162461bcd60e51b815260040161091891906118e5565b506000610d018486611b3b565b600060208083528351808285015260005b81811015611912578581018301518582016040015282016118f6565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610a0c57600080fd5b6000806040838503121561195b57600080fd5b823561196681611933565b946020939093013593505050565b60008060006060848603121561198957600080fd5b833561199481611933565b925060208401356119a481611933565b929592945050506040919091013590565b6000602082840312156119c757600080fd5b813561088781611933565b600080604083850312156119e557600080fd5b82356119f081611933565b91506020830135611a0081611933565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611a5257600080fd5b815161088781611933565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b600080600060608486031215611aad57600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b818103818111156107c6576107c6611ac6565b80820281158282048414176107c6576107c6611ac6565b600060208284031215611b1857600080fd5b8151801515811461088757600080fd5b808201808211156107c6576107c6611ac6565b600082611b5857634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611bc35784516001600160a01b031683529383019391830191600101611b9e565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212200dc99072b8001cfd0324a9917820639338f370a1e0191d2921a17763a20751f864736f6c63430008130033