60806040526000805463ffffffff60a01b191690556002600181905580546001600160401b0319166603000000071e0f179081905561ffff66010000000000008204811691620000619164010000000082048116916201000090041662000434565b6200006d919062000434565b600280547d9e1653edb549f84934e36a8159e236b8872fba3900000000000000000000600160501b600160f01b031961ffff94909416680100000000000000000293909316600160401b600160f01b031990911617919091179055600380546001600160a01b031916739e1653edb549f84934e36a8159e236b8872fba39179055620000fc6009600a62000558565b6200010c906305f5e10062000570565b6005556200011d6009600a62000558565b6200012d906305f5e10062000570565b600655620186a0620001426009600a62000558565b62000152906305f5e10062000570565b6200015f90600a62000570565b6200016b91906200058a565b600755620186a0620001806009600a62000558565b62000190906305f5e10062000570565b6200019e906102ee62000570565b620001aa91906200058a565b600855600754620001bd90603762000570565b620001ca90606462000570565b600955600f80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556012805461ff00191690553480156200020b57600080fd5b5060008054336001600160a01b031991821681178355600e805490921617905560646200023b6009600a62000558565b6200024b906305f5e10062000570565b6200025890606462000570565b6200026491906200058a565b905080620002756009600a62000558565b62000285906305f5e10062000570565b620002919190620005ad565b306000818152600a602081905260408083209490945581546001600160a01b0316825292812084905590917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620002ec9060099062000558565b620002fc906305f5e10062000570565b60405190815260200160405180910390a350600080546001600160a01b039081168252600c602090815260408084208054600160ff1991821681179092553080875283872080548316841790557f0ec9aca9afadc09fc0bd96ec7d7d6cfbb5408a5bc5bcf87bc0656b65508e559a8054831684179055600280546a0100000000000000000000908190048816895285892080548516861790556003805489168a52868a208054861687179055895489168a52600d909752858920805485168617905591885284882080548416851790557fe491d3ddab46a3ddc2b907c015f7e2686859fac31a4f174b9b79a82620b0324e80548416851790555404851686528286208054821683179055925490931684529092208054909216179055620005c3565b634e487b7160e01b600052601160045260246000fd5b61ffff8181168382160190808211156200045257620004526200041e565b5092915050565b600181815b808511156200049a5781600019048211156200047e576200047e6200041e565b808516156200048c57918102915b93841c93908002906200045e565b509250929050565b600082620004b35750600162000552565b81620004c25750600062000552565b8160018114620004db5760028114620004e65762000506565b600191505062000552565b60ff841115620004fa57620004fa6200041e565b50506001821b62000552565b5060208310610133831016604e8410600b84101617156200052b575081810a62000552565b62000537838362000459565b80600019048211156200054e576200054e6200041e565b0290505b92915050565b60006200056960ff841683620004a2565b9392505050565b80820281158282048414176200055257620005526200041e565b600082620005a857634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156200055257620005526200041e565b61299f80620005d36000396000f3fe6080604052600436106101f25760003560e01c80636373ea691161010d57806395d89b41116100a0578063c3f70b521161006f578063c3f70b521461060e578063dd62ed3e14610623578063e8078d9414610669578063f2fde38b14610671578063f8b45b051461069157600080fd5b806395d89b4114610581578063a6097b0a146105b0578063a9059cbb146105d0578063c04a5414146105f057600080fd5b806376a39c28116100dc57806376a39c28146105025780638a8c523c146105225780638d3e6e401461052a5780638da5cb5b1461056357600080fd5b80636373ea691461043757806370a082311461047e578063715018a6146104b457806375f0a874146104c957600080fd5b8063368f4800116101855780634d4ce935116101545780634d4ce935146103a95780634fcd2446146103be57806357ff135a146103de5780635a90a49e146103fe57600080fd5b8063368f48001461033c57806342966c681461035c57806346b898341461037c578063470624021461039157600080fd5b806323b872dd116101c157806323b872dd146102bd5780632b14ca56146102dd5780632fb528ba14610308578063313ce5671461032857600080fd5b806306fdde03146101fe578063095ea7b314610248578063147c9f6d1461027857806318160ddd1461029a57600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5060408051808201909152600f81526e2937b7213ab933bab7323ca1b7b4b760891b60208201525b60405161023f9190612362565b60405180910390f35b34801561025457600080fd5b506102686102633660046123aa565b6106a6565b604051901515815260200161023f565b34801561028457600080fd5b506102986102933660046123d6565b610713565b005b3480156102a657600080fd5b506102af6108b7565b60405190815260200161023f565b3480156102c957600080fd5b506102686102d8366004612421565b6108d8565b3480156102e957600080fd5b50600254610100900460ff165b60405160ff909116815260200161023f565b34801561031457600080fd5b50610298610323366004612488565b610992565b34801561033457600080fd5b5060096102f6565b34801561034857600080fd5b506102986103573660046124cd565b610ac0565b34801561036857600080fd5b506102986103773660046124f7565b610c03565b34801561038857600080fd5b506007546102af565b34801561039d57600080fd5b5060025460ff166102f6565b3480156103b557600080fd5b506008546102af565b3480156103ca57600080fd5b506102986103d9366004612510565b610c98565b3480156103ea57600080fd5b506102986103f936600461253a565b610d38565b34801561040a57600080fd5b5061026861041936600461257f565b6001600160a01b03166000908152600c602052604090205460ff1690565b34801561044357600080fd5b506002546040805161ffff62010000840481168252640100000000840481166020830152600160301b9093049092169082015260600161023f565b34801561048a57600080fd5b506102af61049936600461257f565b6001600160a01b03166000908152600a602052604090205490565b3480156104c057600080fd5b50610298610e0e565b3480156104d557600080fd5b50600254600160501b90046001600160a01b03165b6040516001600160a01b03909116815260200161023f565b34801561050e57600080fd5b5061029861051d36600461259c565b610e7d565b610298610f75565b34801561053657600080fd5b5061026861054536600461257f565b6001600160a01b03166000908152600d602052604090205460ff1690565b34801561056f57600080fd5b506000546001600160a01b03166104ea565b34801561058d57600080fd5b50604080518082019091526006815265434c4153535960d01b6020820152610232565b3480156105bc57600080fd5b506102986105cb3660046125ea565b61104f565b3480156105dc57600080fd5b506102686105eb3660046123aa565b611205565b3480156105fc57600080fd5b506003546001600160a01b03166104ea565b34801561061a57600080fd5b506005546102af565b34801561062f57600080fd5b506102af61063e36600461263e565b6001600160a01b039182166000908152600b6020908152604080832093909416825291909152205490565b61029861123e565b34801561067d57600080fd5b5061029861068c36600461257f565b611559565b34801561069d57600080fd5b506006546102af565b336000818152600b602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107019086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146107465760405162461bcd60e51b815260040161073d90612677565b60405180910390fd5b6001600160a01b03831660009081526011602052604090205460ff1615801561078857506001600160a01b03821660009081526011602052604090205460ff16155b80156107ad57506001600160a01b03811660009081526011602052604090205460ff16155b6107f95760405162461bcd60e51b815260206004820152601760248201527f4c502063616e6e6f74206265207461782077616c6c6574000000000000000000604482015260640161073d565b600280547fffff0000000000000000000000000000000000000000ffffffffffffffffffff16600160501b6001600160a01b0395861690810291909117909155600380546001600160a01b0319908116948616948517909155600e805490911692909416919091179092556000918252600c60208181526040808520805460ff199081166001908117909255600d80855283882080548316841790559587529383528186208054851682179055939091529092208054909216179055565b60006108c56009600a6127a8565b6108d3906305f5e1006127b7565b905090565b60006108e3846115d7565b6108ff5760405162461bcd60e51b815260040161073d906127ce565b6001600160a01b0384166000908152600b602090815260408083203384529091529020546000191461097f576001600160a01b0384166000908152600b6020908152604080832033845290915290205461095a9083906127f8565b6001600160a01b0385166000908152600b602090815260408083203384529091529020555b61098a84848461163d565b949350505050565b6000546001600160a01b031633146109bc5760405162461bcd60e51b815260040161073d90612677565b6012805461ff001916610100179055606460ff83161115610a1f5760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f742073776170206d6f7265207468616e2031303025000000000000604482015260640161073d565b306000908152600a6020526040812054606490610a409060ff8616906127b7565b610a4a919061280b565b9050610a586009600a6127a8565b811115610a6857610a6881611947565b8115610ab0574780610aa55760405162461bcd60e51b815260206004820152600660248201526509cde408aa8960d31b604482015260640161073d565b610aae47611a91565b505b50506012805461ff001916905550565b6000546001600160a01b03163314610aea5760405162461bcd60e51b815260040161073d90612677565b60006103e861ffff8416610b006009600a6127a8565b610b0e906305f5e1006127b7565b610b1891906127b7565b610b22919061280b565b610b2d90600161282d565b9050600554811015610b6e5760405162461bcd60e51b815260206004820152600a602482015269747820746f6f206c6f7760b01b604482015260640161073d565b600581905560006103e861ffff8416610b896009600a6127a8565b610b97906305f5e1006127b7565b610ba191906127b7565b610bab919061280b565b610bb690600161282d565b9050600654811015610bfb5760405162461bcd60e51b815260206004820152600e60248201526d77616c6c657420746f6f206c6f7760901b604482015260640161073d565b600655505050565b336000908152600a602052604090205480821115610c555760405162461bcd60e51b815260206004820152600f60248201526e62616c616e636520746f6f206c6f7760881b604482015260640161073d565b610c5f3383611baa565b60405182815233907ffd38818f5291bf0bb3a2a48aadc06ba8757865d1dabd804585338aab3009dcb69060200160405180910390a25050565b6000546001600160a01b03163314610cc25760405162461bcd60e51b815260040161073d90612677565b6063610cce8284612840565b60ff161115610d145760405162461bcd60e51b81526020600482015260126024820152710a4deeadcc8e8e4d2e040e8dede40d0d2ced60731b604482015260640161073d565b6002805460ff9283166101000261ffff199091169290931691909117919091179055565b6000546001600160a01b03163314610d625760405162461bcd60e51b815260040161073d90612677565b8080610d6b5750815b15610dcc576001600160a01b03831660009081526011602052604090205460ff1615610dcc5760405162461bcd60e51b815260206004820152601060248201526f043616e6e6f74206578656d7074204c560841b604482015260640161073d565b6001600160a01b039092166000908152600c60209081526040808320805494151560ff19958616179055600d9091529020805492151592909116919091179055565b6000546001600160a01b03163314610e385760405162461bcd60e51b815260040161073d90612677565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b03163314610ea75760405162461bcd60e51b815260040161073d90612677565b600081610eb48486612859565b610ebe9190612859565b905060008161ffff1611610f065760405162461bcd60e51b815260206004820152600f60248201526e0416c6c2063616e6e6f74206265203608c1b604482015260640161073d565b6002805467ffff0000ffff00001916600160301b61ffff9687160263ffff000019161762010000948616949094029390931769ffff0000ffff0000000019166401000000009285169290920269ffff0000000000000000191691909117600160401b9190931602919091179055565b6000546001600160a01b03163314610f9f5760405162461bcd60e51b815260040161073d90612677565b6012805461ff0019166101001790556010546001600160a01b0316610ff55760405162461bcd60e51b815260206004820152600c60248201526b10591908131408199a5c9cdd60a21b604482015260640161073d565b60125460ff161561103a5760405162461bcd60e51b815260206004820152600f60248201526e3a3930b234b7339034b99037b832b760891b604482015260640161073d565b611042611c62565b6012805461ff0019169055565b6000546001600160a01b031633146110795760405162461bcd60e51b815260040161073d90612677565b63ffffffff8084169085166110906009600a6127a8565b61109e906305f5e1006127b7565b6110a891906127b7565b6110b2919061280b565b60075563ffffffff8082169083166110cc6009600a6127a8565b6110da906305f5e1006127b7565b6110e491906127b7565b6110ee919061280b565b600881905560075411156111345760405162461bcd60e51b815260206004820152600d60248201526c26b4b717a6b0bc1032b93937b960991b604482015260640161073d565b620186a06111446009600a6127a8565b611152906305f5e1006127b7565b61115c919061280b565b6008541161119a5760405162461bcd60e51b815260206004820152600b60248201526a4d617820746f6f206c6f7760a81b604482015260640161073d565b60646111a86009600a6127a8565b6111b6906305f5e1006127b7565b6111c0919061280b565b600854106111ff5760405162461bcd60e51b815260206004820152600c60248201526b09ac2f040e8dede40d0d2ced60a31b604482015260640161073d565b50505050565b6000611210336115d7565b61122c5760405162461bcd60e51b815260040161073d906127ce565b61123733848461163d565b9392505050565b6000546001600160a01b031633146112685760405162461bcd60e51b815260040161073d90612677565b6012805461ff0019166101001790556010546001600160a01b0316156112bc5760405162461bcd60e51b81526020600482015260096024820152684c502065786973747360b81b604482015260640161073d565b60125460ff16156113015760405162461bcd60e51b815260206004820152600f60248201526e3a3930b234b7339034b99037b832b760891b604482015260640161073d565b60003411806113105750600047115b61135c5760405162461bcd60e51b815260206004820152601d60248201527f4e6f2045544820696e20636f6e7472616374206f72206d657373616765000000604482015260640161073d565b306000908152600a60205260409020546113b05760405162461bcd60e51b8152602060048201526015602482015274139bc81d1bdad95b9cc81a5b8818dbdb9d1c9858dd605a1b604482015260640161073d565b600f60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611403573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611427919061287b565b6001600160a01b031663c9c6539630600f60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611489573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ad919061287b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156114fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061151e919061287b565b601080546001600160a01b0319166001600160a01b0392909216919091179055306000908152600a6020526040812054611042914790611e1c565b6000546001600160a01b031633146115835760405162461bcd60e51b815260040161073d90612677565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b601254600090819060ff16156115ef5750600161070d565b6001600160a01b0383166000908152600c602052604090205460ff16801561162f57506001600160a01b0383166000908152600d602052604090205460ff165b1561070d5750600192915050565b60006001600160a01b0384166116955760405162461bcd60e51b815260206004820152601d60248201527f4e6f207472616e73666572732066726f6d205a65726f2077616c6c6574000000604482015260640161073d565b60125460ff166116fb576001600160a01b0384166000908152600c602052604090205460ff1680156116df57506001600160a01b0384166000908152600d602052604090205460ff165b6116fb5760405162461bcd60e51b815260040161073d906127ce565b601254610100900460ff1615801561172b57506001600160a01b03831660009081526011602052604090205460ff165b1561173857611738611ed7565b6001544310801561174b57506004544310155b801561176f57506001600160a01b03841660009081526011602052604090205460ff165b156117ba576001600160a01b03831632146117ba5760405162461bcd60e51b815260206004820152600b60248201526a13515588189b1bd8dad95960aa1b604482015260640161073d565b6001600160a01b03841630148015906117dc57506001600160a01b0383163014155b80156117f657506000546001600160a01b03858116911614155b1561184657611806848484612047565b6118465760405162461bcd60e51b815260206004820152601160248201527054582065786365656473206c696d69747360781b604482015260640161073d565b6000611853858585612111565b9050600061186182856127f8565b6001600160a01b0387166000908152600a60205260409020549091506118889085906127f8565b6001600160a01b0387166000908152600a6020526040812091909155600980548492906118b690849061282d565b90915550506001600160a01b0385166000908152600a60205260409020546118df90829061282d565b6001600160a01b038087166000818152600a602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119339088815260200190565b60405180910390a350600195945050505050565b6119508161229a565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061198557611985612898565b6001600160a01b03928316602091820292909201810191909152600f54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119de573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a02919061287b565b81600181518110611a1557611a15612898565b6001600160a01b039283166020918202929092010152600f5460405163791ac94760e01b815291169063791ac94790611a5b9085906000908690309042906004016128ae565b600060405180830381600087803b158015611a7557600080fd5b505af1158015611a89573d6000803e3d6000fd5b505050505050565b600254600090611ab59061ffff640100000000820481169162010000900416612859565b905061ffff811615611ba65760025460009061ffff80841691611ae0916201000090910416856127b7565b611aea919061280b565b60025490915060009061ffff80851691611b0e9164010000000090910416866127b7565b611b18919061280b565b90508115611b6257600254604051600160501b9091046001600160a01b0316906108fc8415029084906000818181858888f19350505050158015611b60573d6000803e3d6000fd5b505b80156111ff576003546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611ba2573d6000803e3d6000fd5b5050505b5050565b8015611ba6576001600160a01b0382166000908152600a602052604081208054839290611bd89084906127f8565b90915550506000808052600a6020527f13da86008ba1c6922daee3e07db95305ef49ebced9f5467a0b8613fcc6b343e38054839290611c1890849061282d565b90915550506040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6064611c706009600a6127a8565b611c7e906305f5e1006127b7565b611c899060016127b7565b611c93919061280b565b6005556064611ca46009600a6127a8565b611cb2906305f5e1006127b7565b611cbd9060016127b7565b611cc7919061280b565b6006556012805460ff191660019081179091554360048190556000549154600160b81b830460ff90811693600160b01b90041691611d049161282d565b611d0e919061282d565b611d18919061282d565b6001556009546010546001600160a01b03166000908152600a602052604081208054909190611d489084906127f8565b909155505060105460408051600481526024810182526020810180516001600160e01b031660016209351760e01b031917905290516000926001600160a01b031691611d939161291f565b6000604051808303816000865af19150503d8060008114611dd0576040519150601f19603f3d011682016040523d82523d6000602084013e611dd5565b606091505b5050601080546001600160a01b03908116600090815260116020526040808220805460ff191686151517905592549091168152205490915060ff16611e1957600080fd5b50565b600e546001600160a01b03168115611e32575060005b611e3b8461229a565b600f5460405163f305d71960e01b81523060048201526024810186905260006044820181905260648201526001600160a01b0383811660848301524260a48301529091169063f305d71990859060c40160606040518083038185885af1158015611ea9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611ece919061293b565b50505050505050565b6012805461ff0019166101001790556009546007548110801590611efd575060125460ff165b15612039576008548110611f1057506008545b600280546000919061ffff600160401b8204811691611f3891600160301b90910416856127b7565b611f42919061280b565b611f4c919061280b565b90506000611f5a82846127f8565b9050611f686009600a6127a8565b81111561202557306000908152600a6020526040812080544792869291611f9090849061282d565b90915550611f9f905082611947565b8360096000828254611fb191906127f8565b9091555060009050611fc382476127f8565b600254909150600160301b900461ffff16156120225760025460009061ffff600160401b8204811691611fff91600160301b90910416846127b7565b612009919061280b565b90506120148561229a565b61202085826000611e1c565b505b50505b4780156120355761203581611a91565b5050505b506012805461ff0019169055565b60125460009060019060ff16801561207857506001600160a01b0385166000908152600d602052604090205460ff16155b801561209d57506001600160a01b0384166000908152600d602052604090205460ff16155b1561098a576005548311156120b45750600061098a565b6001600160a01b03841660009081526011602052604090205460ff1615801561210157506006546001600160a01b0385166000908152600a60205260409020546120ff90859061282d565b115b1561098a57506000949350505050565b601254600090819060ff16158061214057506001600160a01b0385166000908152600c602052604090205460ff165b8061216357506001600160a01b0384166000908152600c602052604090205460ff165b156121705750600061098a565b6001600160a01b03851660009081526011602052604090205460ff161561224e5760005460045460ff600160b81b83048116926121b892600160b01b9091049091169061282d565b6121c2919061282d565b43106121ec576002546064906121db9060ff16856127b7565b6121e5919061280b565b905061098a565b60005460045461220691600160b01b900460ff169061282d565b4310612226576000546064906121db90600160a81b900460ff16856127b7565b6004544310612249576000546064906121db90600160a01b900460ff16856127b7565b61098a565b6001600160a01b03841660009081526011602052604090205460ff161561098a5760025460649061228790610100900460ff16856127b7565b612291919061280b565b95945050505050565b306000908152600b60209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d8452909152902054811115611e1957306000818152600b60209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d808552908352928190206000199081905590519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350565b60005b83811015612359578181015183820152602001612341565b50506000910152565b602081526000825180602084015261238181604085016020870161233e565b601f01601f19169190910160400192915050565b6001600160a01b0381168114611e1957600080fd5b600080604083850312156123bd57600080fd5b82356123c881612395565b946020939093013593505050565b6000806000606084860312156123eb57600080fd5b83356123f681612395565b9250602084013561240681612395565b9150604084013561241681612395565b809150509250925092565b60008060006060848603121561243657600080fd5b833561244181612395565b9250602084013561245181612395565b929592945050506040919091013590565b803560ff8116811461247357600080fd5b919050565b8035801515811461247357600080fd5b6000806040838503121561249b57600080fd5b6124a483612462565b91506124b260208401612478565b90509250929050565b803561ffff8116811461247357600080fd5b600080604083850312156124e057600080fd5b6124e9836124bb565b91506124b2602084016124bb565b60006020828403121561250957600080fd5b5035919050565b6000806040838503121561252357600080fd5b61252c83612462565b91506124b260208401612462565b60008060006060848603121561254f57600080fd5b833561255a81612395565b925061256860208501612478565b915061257660408501612478565b90509250925092565b60006020828403121561259157600080fd5b813561123781612395565b6000806000606084860312156125b157600080fd5b6125ba846124bb565b92506125c8602085016124bb565b9150612576604085016124bb565b803563ffffffff8116811461247357600080fd5b6000806000806080858703121561260057600080fd5b612609856125d6565b9350612617602086016125d6565b9250612625604086016125d6565b9150612633606086016125d6565b905092959194509250565b6000806040838503121561265157600080fd5b823561265c81612395565b9150602083013561266c81612395565b809150509250929050565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156126ff5781600019048211156126e5576126e56126ae565b808516156126f257918102915b93841c93908002906126c9565b509250929050565b6000826127165750600161070d565b816127235750600061070d565b816001811461273957600281146127435761275f565b600191505061070d565b60ff841115612754576127546126ae565b50506001821b61070d565b5060208310610133831016604e8410600b8410161715612782575081810a61070d565b61278c83836126c4565b80600019048211156127a0576127a06126ae565b029392505050565b600061123760ff841683612707565b808202811582820484141761070d5761070d6126ae565b60208082526010908201526f2a3930b234b733903737ba1037b832b760811b604082015260600190565b8181038181111561070d5761070d6126ae565b60008261282857634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561070d5761070d6126ae565b60ff818116838216019081111561070d5761070d6126ae565b61ffff818116838216019080821115612874576128746126ae565b5092915050565b60006020828403121561288d57600080fd5b815161123781612395565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156128fe5784516001600160a01b0316835293830193918301916001016128d9565b50506001600160a01b03969096166060850152505050608001529392505050565b6000825161293181846020870161233e565b9190910192915050565b60008060006060848603121561295057600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220b39bd0812743d8a690000374ef0f9e914acb220cf20dae36175bbe7652a24b0064736f6c63430008120033