60e0604052602b600f5534801562000015575f80fd5b50604051620056a8380380620056a883398101604081905262000038916200041a565b806040518060400160405280601a81526020017f43727970746f2056616c6c65797320416476656e7475726572730000000000008152506040518060400160405280600381526020016243564160e81b815250815f90816200009b9190620005b2565b506001620000aa8282620005b2565b5050506001600160a01b03166080528151600e556020820151600d805460408501516001600160401b0390811668010000000000000000026001600160801b03199092169316929092179190911790556060820151600c906200010e9082620005b2565b5060408051808201909152600781526670726f66696c6560c81b6020820152620001389062000234565b6001600160a01b031660a0526040805180820190915260058152641e5a595b1960da1b60208201526200016b9062000234565b6001600160a01b031660c052620001835f33620002ae565b6200019d5f805160206200566883398151915233620002ae565b620001b75f805160206200568883398151915233620002ae565b5f620001e960405180604001604052806008815260200167747265617375727960c01b8152506200023460201b60201c565b9050620001f75f82620002ae565b620002115f805160206200566883398151915282620002ae565b6200022b5f805160206200568883398151915282620002ae565b505050620006d1565b60805160405163bf40fac160e01b81525f916001600160a01b03169063bf40fac190620002669085906004016200067a565b602060405180830381865afa15801562000282573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002a89190620006ae565b92915050565b5f828152600a602090815260408083206001600160a01b038516845290915290205460ff166200034d575f828152600a602090815260408083206001600160a01b03851684529091529020805460ff191660011790556200030c3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b634e487b7160e01b5f52604160045260245ffd5b604051608081016001600160401b03811182821017156200038a576200038a62000351565b60405290565b604051601f8201601f191681016001600160401b0381118282101715620003bb57620003bb62000351565b604052919050565b80516001600160401b0381168114620003da575f80fd5b919050565b5f5b83811015620003fb578181015183820152602001620003e1565b50505f910152565b80516001600160a01b0381168114620003da575f80fd5b5f80604083850312156200042c575f80fd5b82516001600160401b038082111562000443575f80fd5b908401906080828703121562000457575f80fd5b6200046162000365565b82518152602062000474818501620003c3565b818301526200048660408501620003c3565b60408301526060840151838111156200049d575f80fd5b80850194505087601f850112620004b2575f80fd5b835183811115620004c757620004c762000351565b620004db601f8201601f1916830162000390565b93508084528882828701011115620004f1575f80fd5b6200050281838601848801620003df565b508260608301528195506200051981880162000403565b9450505050509250929050565b600181811c908216806200053b57607f821691505b6020821081036200055a57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620005ad575f81815260208120601f850160051c81016020861015620005885750805b601f850160051c820191505b81811015620005a95782815560010162000594565b5050505b505050565b81516001600160401b03811115620005ce57620005ce62000351565b620005e681620005df845462000526565b8462000560565b602080601f8311600181146200061c575f8415620006045750858301515b5f19600386901b1c1916600185901b178555620005a9565b5f85815260208120601f198616915b828110156200064c578886015182559484019460019091019084016200062b565b50858210156200066a57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b602081525f82518060208401526200069a816040850160208701620003df565b601f01601f19169190910160400192915050565b5f60208284031215620006bf575f80fd5b620006ca8262000403565b9392505050565b60805160a05160c051614f6c620006fc5f395f6138c501525f61383b01525f6107ae0152614f6c5ff3fe60806040526004361061037c575f3560e01c80638406c079116101d3578063b6bde534116100fd578063dc36f6691161009d578063ec0d75571161006d578063ec0d755714610ce9578063f5aa406d14610cfd578063f8e6f95e14610d1c578063ffc9896b14610d3b575f80fd5b8063dc36f66914610c57578063e1c29fb514610c76578063e8656fcc14610c89578063e985e9c514610ca2575f80fd5b8063c2ca0ac5116100d8578063c2ca0ac514610bc7578063c87b56dd14610be6578063d539139314610c05578063d547741f14610c38575f80fd5b8063b6bde53414610b77578063b88d4fde14610b8b578063ba1c621714610baa575f80fd5b8063a1bd5fc711610173578063a500cb6511610143578063a500cb65146108f9578063a853211a14610918578063b09afec114610938578063b38a45b914610b58575f80fd5b8063a1bd5fc71461089d578063a217fddf146108b2578063a22cb465146108c5578063a329e1db146108e4575f80fd5b806395d89b41116101ae57806395d89b411461080e5780639769dc0e146108395780639a0a508314610858578063a0bcfc7f1461087e575f80fd5b80638406c0791461079d57806391d14854146107d057806391d3e5a7146107ef575f80fd5b806336568abe116102b4578063611f3f10116102545780637894505e116102245780637894505e146107095780637a95f5bf146107285780637b7d7411146107475780637db3aecc14610766575f80fd5b8063611f3f10146106795780636352211e146106955780636dc92b65146106b457806370a08231146106ea575f80fd5b8063477c4f931161028f578063477c4f93146105f25780634e6ecc4e146106115780634f6ccce71461062e5780635de6dc551461064d575f80fd5b806336568abe1461059f578063386bfc98146105be57806342842e0e146105d3575f80fd5b8063214806141161031f5780632d8d6a81116102fa5780632d8d6a81146105235780632f2ff15d146105425780632f745c5914610561578063327fbb9a14610580575f80fd5b806321480614146104b757806323b872dd146104d6578063248a9ca3146104f5575f80fd5b8063095ea7b31161035a578063095ea7b3146104395780630ff26ccb1461045a57806317e7f2951461047957806318160ddd146104a3575f80fd5b806301ffc9a71461038057806306fdde03146103b4578063081812fc14610402575b5f80fd5b34801561038b575f80fd5b5061039f61039a3660046141de565b610da5565b60405190151581526020015b60405180910390f35b3480156103bf575f80fd5b5060408051808201909152601a81527f43727970746f2056616c6c65797320416476656e74757265727300000000000060208201525b6040516103ab9190614246565b34801561040d575f80fd5b5061042161041c366004614258565b610dc4565b6040516001600160a01b0390911681526020016103ab565b348015610444575f80fd5b5061045861045336600461428a565b610e4f565b005b348015610465575f80fd5b50610458610474366004614358565b610f63565b348015610484575f80fd5b50610495681b1ae4d6e2ef50000081565b6040519081526020016103ab565b3480156104ae575f80fd5b50600854610495565b3480156104c2575f80fd5b506104586104d1366004614505565b610f85565b3480156104e1575f80fd5b506104586104f036600461455f565b61100a565b348015610500575f80fd5b5061049561050f366004614258565b5f908152600a602052604090206001015490565b34801561052e575f80fd5b5061045861053d366004614598565b61103b565b34801561054d575f80fd5b5061045861055c3660046145d1565b61119e565b34801561056c575f80fd5b5061049561057b36600461428a565b6111c3565b34801561058b575f80fd5b5061045861059a3660046145fb565b611257565b3480156105aa575f80fd5b506104586105b93660046145d1565b61129c565b3480156105c9575f80fd5b50610495600e5481565b3480156105de575f80fd5b506104586105ed36600461455f565b61131a565b3480156105fd575f80fd5b5061045861060c3660046145fb565b611334565b34801561061c575f80fd5b5061049569054b40b1f852bda0000081565b348015610639575f80fd5b50610495610648366004614258565b611379565b348015610658575f80fd5b5061066c61066736600461461c565b611409565b6040516103ab9190614635565b348015610684575f80fd5b50610495682b5e3af16b1880000081565b3480156106a0575f80fd5b506104216106af366004614258565b6114a7565b3480156106bf575f80fd5b506106c861151d565b60408051941515855260208501939093529183015260608201526080016103ab565b3480156106f5575f80fd5b5061049561070436600461461c565b61155a565b348015610714575f80fd5b506104586107233660046145fb565b6115df565b348015610733575f80fd5b50610458610742366004614678565b61166f565b348015610752575f80fd5b506104586107613660046145fb565b6118fd565b348015610771575f80fd5b50600d54610785906001600160401b031681565b6040516001600160401b0390911681526020016103ab565b3480156107a8575f80fd5b506104217f000000000000000000000000000000000000000000000000000000000000000081565b3480156107db575f80fd5b5061039f6107ea3660046145d1565b611942565b3480156107fa575f80fd5b50610458610809366004614698565b61196c565b348015610819575f80fd5b5060408051808201909152600381526243564160e81b60208201526103f5565b348015610844575f80fd5b5061045861085336600461461c565b6119b3565b348015610863575f80fd5b50600d5461078590600160401b90046001600160401b031681565b348015610889575f80fd5b506104586108983660046146b9565b611a02565b3480156108a8575f80fd5b5061049560115481565b3480156108bd575f80fd5b506104955f81565b3480156108d0575f80fd5b506104586108df366004614724565b611a20565b3480156108ef575f80fd5b50610495610bb881565b348015610904575f80fd5b50610458610913366004614759565b611a2b565b348015610923575f80fd5b506104955f80516020614f1783398151915281565b348015610943575f80fd5b50610b4b610952366004614258565b604080516102a0810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c081018290526101e081018290526102008101829052610220810182905261024081018290526102608101829052610280810191909152505f9081526014602090815260409182902082516102a081018452815461ffff80821683526201000082048116948301949094526401000000008104841694820194909452600160301b840483166060820152600160401b840483166080820152600160501b8404831660a0820152600160601b8404831660c0820152600160701b840490921660e083015260ff600160801b84048116610100840152600160881b84048116610120840152600160901b84048116610140840152600160981b84048116610160840152600160a01b84048116610180840152600160a81b840481166101a0840152600160b01b840481166101c0840152600160b81b840481166101e0840152600160c01b84048116610200840152600160c81b84048116610220840152600160d01b9093049092161515610240820152600182015461026082015260029091015461028082015290565b6040516103ab9190614789565b348015610b63575f80fd5b50610458610b72366004614258565b611a84565b348015610b82575f80fd5b50610495601981565b348015610b96575f80fd5b50610458610ba53660046148e3565b611a95565b348015610bb5575f80fd5b50610495690a968163f0a57b40000081565b348015610bd2575f80fd5b50610458610be1366004614258565b611ac7565b348015610bf1575f80fd5b506103f5610c00366004614258565b611dcb565b348015610c10575f80fd5b506104957f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b348015610c43575f80fd5b50610458610c523660046145d1565b611e54565b348015610c62575f80fd5b50610458610c7136600461499b565b611e79565b610458610c84366004614a15565b611fcc565b348015610c94575f80fd5b5060125461039f9060ff1681565b348015610cad575f80fd5b5061039f610cbc366004614a30565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205460ff1690565b348015610cf4575f80fd5b5061045861207d565b348015610d08575f80fd5b50610458610d17366004614258565b61209d565b348015610d27575f80fd5b50610458610d36366004614a58565b6120ae565b348015610d46575f80fd5b50610d5a610d5536600461461c565b612303565b6040516103ab91905f60c082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015292915050565b5f610daf82612397565b80610dbe5750610dbe826123e6565b92915050565b5f610dce8261240a565b610e345760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b505f908152600460205260409020546001600160a01b031690565b5f610e59826114a7565b9050806001600160a01b0316836001600160a01b031603610ec65760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610e2b565b336001600160a01b0382161480610ee25750610ee28133610cbc565b610f545760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610e2b565b610f5e8383612426565b505050565b5f80516020614f17833981519152610f7b8133612493565b610f5e83836124f7565b5f80516020614f17833981519152610f9d8133612493565b505f94855260146020526040909420805461ffff60b01b1916600160b01b60ff9586160260ff60b81b191617600160b81b938516939093029290921761ffff60c01b1916600160c01b9184169190910260ff60c81b191617600160c81b9290931691909102919091179055565b61101433826128fb565b6110305760405162461bcd60e51b8152600401610e2b90614ade565b610f5e8383836129e2565b5f80516020614f178339815191526110538133612493565b60088261ffff16101561109f5760405162461bcd60e51b81526020600482015260146024820152734572726f723a20496e76616c69642076616c756560601b6044820152606401610e2b565b5f8481526014602052604081209060ff851690036110cb57805461ffff191661ffff8416178155611197565b8360ff166001036110f157805463ffff000019166201000061ffff851602178155611197565b8360ff1660020361111b57805465ffff00000000191664010000000061ffff851602178155611197565b8360ff1660030361114657805467ffff0000000000001916600160301b61ffff851602178155611197565b8360ff1660040361117357805469ffff00000000000000001916600160401b61ffff851602178155611197565b8360ff1660050361119757805461ffff60501b1916600160501b61ffff8516021781555b5050505050565b5f828152600a60205260409020600101546111b98133612493565b610f5e8383612b89565b5f6111cd8361155a565b821061122f5760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610e2b565b506001600160a01b03919091165f908152600660209081526040808320938352929052205490565b5f80516020614f1783398151915261126f8133612493565b505f91825260146020526040909120805460ff909216600160981b0260ff60981b19909216919091179055565b6001600160a01b038116331461130c5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610e2b565b6113168282612c0e565b5050565b610f5e83838360405180602001604052805f815250611a95565b5f80516020614f1783398151915261134c8133612493565b505f91825260146020526040909120805460ff909216600160a81b0260ff60a81b19909216919091179055565b5f61138360085490565b82106113e65760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610e2b565b600882815481106113f9576113f9614b2f565b905f5260205f2001549050919050565b60605f6114158361155a565b90505f816001600160401b03811115611430576114306142b2565b604051908082528060200260200182016040528015611459578160200160208202803683370190505b5090505f5b8281101561149f5761147085826111c3565b82828151811061148257611482614b2f565b60209081029190910101528061149781614b57565b91505061145e565b509392505050565b5f818152600260205260408120546001600160a01b031680610dbe5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610e2b565b6012545f9081908190819060ff16611534600b5490565b600d5491955093506001600160401b038082169350600160401b90910416905090919293565b5f6001600160a01b0382166115c45760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610e2b565b506001600160a01b03165f9081526003602052604090205490565b5f80516020614f178339815191526115f78133612493565b60058260ff16106116425760405162461bcd60e51b81526020600482015260156024820152744572726f723a20496e76616c69642072617269747960581b6044820152606401610e2b565b505f91825260146020526040909120805460ff909216600160901b0260ff60901b19909216919091179055565b5f61167a8133612493565b6116838361240a565b6116cf5760405162461bcd60e51b815260206004820152601c60248201527f52657665616c3a20546f6b656e20646f6573206e6f74206578697374000000006044820152606401610e2b565b5f6116d9846114a7565b6001600160a01b0381165f908152601360209081526040808320815160c08101835281548152600182015481850152600282015481840152600382015460608201526004820154608082015260059091015460a082015288845260149092529091205491925090600160d01b900460ff16156117975760405162461bcd60e51b815260206004820152601e60248201527f52657665616c3a20546f6b656e20616c72656164792072657665616c656400006044820152606401610e2b565b848160a00151146117e45760405162461bcd60e51b815260206004820152601760248201527614995d99585b0e88125b9d985b1a59081d1bdad95b9259604a1b6044820152606401610e2b565b5f81608001511180156117fa57505f8160a00151115b61183e5760405162461bcd60e51b81526020600482015260156024820152744572726f723a204e6f20636f6d6d6974206461746160581b6044820152606401610e2b565b6001600160a01b0382165f90815260136020526040812060058101829055600401819055601080546118ce918791908461187783614b57565b9190505560408051602080820193909352808201939093527f41445645544e52554945524d494e54534f554c52414e444f4d0000000000000060608401528051605981850301815260799093019052815191012090565b90506118da8682612c74565b50506001600160a01b03165f908152601360205260409020600301929092555050565b5f80516020614f178339815191526119158133612493565b505f91825260146020526040909120805460ff909216600160a01b0260ff60a01b19909216919091179055565b5f918252600a602090815260408084206001600160a01b0393909316845291905290205460ff1690565b5f80516020614f178339815191526119848133612493565b505f91825260146020526040909120805461ffff909216600160601b0261ffff60601b19909216919091179055565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66119de8133612493565b5f6119e8600b5490565b90506119f48382613323565b610f5e600b80546001019055565b5f611a0d8133612493565b600c611a1a838583614be6565b50505050565b61131633838361345f565b5f80516020614f17833981519152611a438133612493565b505f92835260146020526040909220805461ffff60801b1916600160801b60ff9384160260ff60881b191617600160881b9290931691909102919091179055565b5f611a8f8133612493565b50600f55565b611a9f33836128fb565b611abb5760405162461bcd60e51b8152600401610e2b90614ade565b611a1a8484848461352c565b611ad08161240a565b611b1c5760405162461bcd60e51b815260206004820152601c60248201527f52657665616c3a20546f6b656e20646f6573206e6f74206578697374000000006044820152606401610e2b565b33611b26826114a7565b6001600160a01b031614611b705760405162461bcd60e51b81526020600482015260116024820152702932bb32b0b61d102737ba1037bbb732b960791b6044820152606401610e2b565b335f908152601360209081526040808320815160c08101835281548152600182015481850152600282015481840152600382015460608201526004820154608082015260059091015460a0820152848452601490925290912054600160d01b900460ff1615611c215760405162461bcd60e51b815260206004820152601e60248201527f52657665616c3a20546f6b656e20616c72656164792072657665616c656400006044820152606401610e2b565b818160a0015114611c6e5760405162461bcd60e51b815260206004820152601760248201527614995d99585b0e88125b9d985b1a59081d1bdad95b9259604a1b6044820152606401610e2b565b5f8160800151118015611c8457505f8160a00151115b611cc85760405162461bcd60e51b81526020600482015260156024820152744572726f723a204e6f20636f6d6d6974206461746160581b6044820152606401610e2b565b6080810151611cd8906003614ca0565b4311611d1c5760405162461bcd60e51b8152602060048201526013602482015272426c6f636b68617368206e6f7420726561647960681b6044820152606401610e2b565b5f81608001516003611d2e9190614ca0565b4090505f819003611d755760405162461bcd60e51b8152602060048201526011602482015270092dcecc2d8d2c840c4d8dec6d6d0c2e6d607b1b6044820152606401610e2b565b335f9081526013602052604081206005810182905560040181905560108054611da5918491908461187783614b57565b9050611db18482612c74565b5050335f9081526013602052604090206003019190915550565b6060611dd68261240a565b611e225760405162461bcd60e51b815260206004820152601f60248201527f4572726f723a20546f6b656e20646f6573206e6f7420657869737420796574006044820152606401610e2b565b600c611e2d8361355f565b604051602001611e3e929190614cb3565b6040516020818303038152906040529050919050565b5f828152600a6020526040902060010154611e6f8133612493565b610f5e8383612c0e565b5f80516020614f17833981519152611e918133612493565b60088761ffff1610158015611eab575060088661ffff1610155b8015611ebc575060088561ffff1610155b8015611ecd575060088461ffff1610155b8015611ede575060088361ffff1610155b8015611eef575060018261ffff1610155b611f325760405162461bcd60e51b81526020600482015260146024820152734572726f723a20496e76616c696420737461747360601b6044820152606401610e2b565b505f96875260146020526040909620805461ffff978816600160501b0261ffff60501b19938916600160401b02939093166bffffffff000000000000000019948916600160301b0267ffff00000000000019968a16640100000000029690961667ffffffff0000000019978a16620100000263ffffffff199093169990981698909817179490941694909417919091171692909217179055565b60125460ff1661200f5760405162461bcd60e51b815260206004820152600e60248201526d4d696e743a204e6f74206c69766560901b6044820152606401610e2b565b600d54600160401b90046001600160401b031642116120705760405162461bcd60e51b815260206004820152601a60248201527f4d696e743a2057686974656c697374207374696c6c206c6976650000000000006044820152606401610e2b565b61207a815f61365b565b50565b5f6120888133612493565b506012805460ff19811660ff90911615179055565b5f6120a88133612493565b50600e55565b60125460ff166120f15760405162461bcd60e51b815260206004820152600e60248201526d4d696e743a204e6f74206c69766560901b6044820152606401610e2b565b600d546001600160401b03164211801561211c5750600d54600160401b90046001600160401b031642105b6121685760405162461bcd60e51b815260206004820152601d60248201527f4d696e743a204e6f7420696e2077686974656c6973742077696e646f770000006044820152606401610e2b565b335f90815260136020908152604091829020825160c081018452815480825260018084015494830194909452600283015494820194909452600382015460608201526004820154608082015260059091015460a08201529184916121cc9190614ca0565b111561221a5760405162461bcd60e51b815260206004820152601d60248201527f4d696e743a204e6f2077686974656c697374206d696e7473206c6566740000006044820152606401610e2b565b604080513360208201529081018490525f9060600160408051601f19818403018152828252805160209182012090830152016040516020818303038152906040528051906020012090506122a48686808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525050600e5491508490506139db565b6122f05760405162461bcd60e51b815260206004820152601d60248201527f4d696e743a20596f7520617265206e6f742077686974656c69737465640000006044820152606401610e2b565b6122fb83600161365b565b505050505050565b6123366040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b506001600160a01b03165f90815260136020908152604091829020825160c08101845281548152600182015492810192909252600281015492820192909252600382015460608201526004820154608082015260059091015460a082015290565b5f6001600160e01b031982166380ac58cd60e01b14806123c757506001600160e01b03198216635b5e139f60e01b145b80610dbe57506301ffc9a760e01b6001600160e01b0319831614610dbe565b5f6001600160e01b03198216637965db0b60e01b1480610dbe5750610dbe826139f0565b5f908152600260205260409020546001600160a01b0316151590565b5f81815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061245a826114a7565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b61249d8282611942565b611316576124b5816001600160a01b03166014613a14565b6124c0836020613a14565b6040516020016124d1929190614d36565b60408051601f198184030181529082905262461bcd60e51b8252610e2b91600401614246565b6125008261240a565b61254c5760405162461bcd60e51b815260206004820152601b60248201527f4572726f723a20546f6b656e20646f6573206e6f7420657869737400000000006044820152606401610e2b565b600581610140015160ff161061259c5760405162461bcd60e51b81526020600482015260156024820152744572726f723a20496e76616c69642072617269747960581b6044820152606401610e2b565b6008815f015161ffff16101580156125bd57506008816020015161ffff1610155b80156125d257506008816040015161ffff1610155b80156125e757506008816060015161ffff1610155b80156125fc57506008816080015161ffff1610155b8015612611575060018160a0015161ffff1610155b6126545760405162461bcd60e51b81526020600482015260146024820152734572726f723a20496e76616c696420737461747360601b6044820152606401610e2b565b8060145f8481526020019081526020015f205f820151815f015f6101000a81548161ffff021916908361ffff1602179055506020820151815f0160026101000a81548161ffff021916908361ffff1602179055506040820151815f0160046101000a81548161ffff021916908361ffff1602179055506060820151815f0160066101000a81548161ffff021916908361ffff1602179055506080820151815f0160086101000a81548161ffff021916908361ffff16021790555060a0820151815f01600a6101000a81548161ffff021916908361ffff16021790555060c0820151815f01600c6101000a81548161ffff021916908361ffff16021790555060e0820151815f01600e6101000a81548161ffff021916908361ffff160217905550610100820151815f0160106101000a81548160ff021916908360ff160217905550610120820151815f0160116101000a81548160ff021916908360ff160217905550610140820151815f0160126101000a81548160ff021916908360ff160217905550610160820151815f0160136101000a81548160ff021916908360ff160217905550610180820151815f0160146101000a81548160ff021916908360ff1602179055506101a0820151815f0160156101000a81548160ff021916908360ff1602179055506101c0820151815f0160166101000a81548160ff021916908360ff1602179055506101e0820151815f0160176101000a81548160ff021916908360ff160217905550610200820151815f0160186101000a81548160ff021916908360ff160217905550610220820151815f0160196101000a81548160ff021916908360ff160217905550610240820151815f01601a6101000a81548160ff021916908315150217905550610260820151816001015561028082015181600201559050505050565b5f6129058261240a565b6129665760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610e2b565b5f612970836114a7565b9050806001600160a01b0316846001600160a01b031614806129ab5750836001600160a01b03166129a084610dc4565b6001600160a01b0316145b806129da57506001600160a01b038082165f9081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b03166129f5826114a7565b6001600160a01b031614612a5d5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610e2b565b6001600160a01b038216612abf5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610e2b565b612aca838383613bb0565b612ad45f82612426565b6001600160a01b0383165f908152600360205260408120805460019290612afc908490614daa565b90915550506001600160a01b0382165f908152600360205260408120805460019290612b29908490614ca0565b90915550505f8181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b612b938282611942565b611316575f828152600a602090815260408083206001600160a01b03851684529091529020805460ff19166001179055612bca3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b612c188282611942565b15611316575f828152600a602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b5f612c7e82613c27565b90505f80808080858015612cb15760018114612cbe5760028114612ccb5760038114612cd85760048114612ce557612cee565b600a9550600a9450612cee565b600f9550600c9450612cee565b60169550600f9450612cee565b6020955060139450612cee565b602d9550601994505b5060408051600680825260e082019092525f916020820160c0803683370190505090506008815f81518110612d2557612d25614b2f565b602002602001019061ffff16908161ffff1681525050600881600181518110612d5057612d50614b2f565b602002602001019061ffff16908161ffff1681525050600881600281518110612d7b57612d7b614b2f565b602002602001019061ffff16908161ffff1681525050600881600381518110612da657612da6614b2f565b602002602001019061ffff16908161ffff1681525050600881600481518110612dd157612dd1614b2f565b602002602001019061ffff16908161ffff1681525050600181600581518110612dfc57612dfc614b2f565b602002602001019061ffff16908161ffff16815250505b8515612ed157612e24600689614dd1565b935083600503612e375760019250612e8b565b600a8610612e46576004612e49565b60025b60ff16915083600403612e6457612e61600283614de4565b91505b818610612e715781612e73565b855b612e7d9089614dd1565b612e88906001614ca0565b92505b612e958387614daa565b955082818581518110612eaa57612eaa614b2f565b60200260200101818151612ebe9190614df7565b61ffff1690525060059790971c96612e13565b5f612edc8989613c88565b9050604051806102a00160405280835f81518110612efc57612efc614b2f565b602002602001015161ffff16815260200183600181518110612f2057612f20614b2f565b602002602001015161ffff16815260200183600281518110612f4457612f44614b2f565b602002602001015161ffff16815260200183600381518110612f6857612f68614b2f565b602002602001015161ffff16815260200183600481518110612f8c57612f8c614b2f565b602002602001015161ffff16815260200183600581518110612fb057612fb0614b2f565b602002602001015161ffff1681526020018761ffff1681526020015f61ffff168152602001825f81518110612fe757612fe7614b2f565b602002602001015160ff1681526020018260018151811061300a5761300a614b2f565b602002602001015160ff1681526020018960ff1681526020015f60ff1681526020015f60ff1681526020015f60ff1681526020015f60ff1681526020015f60ff1681526020015f60ff1681526020015f60ff1681526020016001151581526020015f81526020015f81525060145f8c81526020019081526020015f205f820151815f015f6101000a81548161ffff021916908361ffff1602179055506020820151815f0160026101000a81548161ffff021916908361ffff1602179055506040820151815f0160046101000a81548161ffff021916908361ffff1602179055506060820151815f0160066101000a81548161ffff021916908361ffff1602179055506080820151815f0160086101000a81548161ffff021916908361ffff16021790555060a0820151815f01600a6101000a81548161ffff021916908361ffff16021790555060c0820151815f01600c6101000a81548161ffff021916908361ffff16021790555060e0820151815f01600e6101000a81548161ffff021916908361ffff160217905550610100820151815f0160106101000a81548160ff021916908360ff160217905550610120820151815f0160116101000a81548160ff021916908360ff160217905550610140820151815f0160126101000a81548160ff021916908360ff160217905550610160820151815f0160136101000a81548160ff021916908360ff160217905550610180820151815f0160146101000a81548160ff021916908360ff1602179055506101a0820151815f0160156101000a81548160ff021916908360ff1602179055506101c0820151815f0160166101000a81548160ff021916908360ff1602179055506101e0820151815f0160176101000a81548160ff021916908360ff160217905550610200820151815f0160186101000a81548160ff021916908360ff160217905550610220820151815f0160196101000a81548160ff021916908360ff160217905550610240820151815f01601a6101000a81548160ff0219169083151502179055506102608201518160010155610280820151816002015590505050505050505050505050565b6001600160a01b0382166133795760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610e2b565b6133828161240a565b156133cf5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610e2b565b6133da5f8383613bb0565b6001600160a01b0382165f908152600360205260408120805460019290613402908490614ca0565b90915550505f8181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b816001600160a01b0316836001600160a01b0316036134c05760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610e2b565b6001600160a01b038381165f81815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6135378484846129e2565b61354384848484613df1565b611a1a5760405162461bcd60e51b8152600401610e2b90614e12565b6060815f036135855750506040805180820190915260018152600360fc1b602082015290565b815f5b81156135ae578061359881614b57565b91506135a79050600a83614de4565b9150613588565b5f816001600160401b038111156135c7576135c76142b2565b6040519080825280601f01601f1916602001820160405280156135f1576020820181803683370190505b5090505b84156129da57613606600183614daa565b9150613613600a86614dd1565b61361e906030614ca0565b60f81b81838151811061363357613633614b2f565b60200101906001600160f81b03191690815f1a905350613654600a86614de4565b94506135f5565b335f90815260136020908152604091829020825160c081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820181905260059092015460a0820152901580156136c2575060a0810151155b6137055760405162461bcd60e51b81526020600482015260146024820152734d696e743a20436f6d6d69742070656e64696e6760601b6044820152606401610e2b565b8051601990613715906001614ca0565b11156137635760405162461bcd60e51b815260206004820152601b60248201527f4d696e743a204d6178206d696e746564207065722077616c6c657400000000006044820152606401610e2b565b5f61376d600b5490565b9050610bb861377d826001614ca0565b11156137cb5760405162461bcd60e51b815260206004820152601860248201527f4d696e743a204d617820737570706c79207265616368656400000000000000006044820152606401610e2b565b83156138c3575f826040015169054b40b1f852bda000006137ec9190614e64565b61380090690a968163f0a57b400000614ca0565b90508060115f8282546138139190614ca0565b90915550506040516349a01c2960e01b815233600482015260016024820152604481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906349a01c29906064015f604051808303815f87803b158015613884575f80fd5b505af1158015613896573d5f803e3d5ffd5b5050335f9081526013602052604081206002018054935091506138b883614b57565b91905055505061398a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166323b872dd33308661390857682b5e3af16b18800000613913565b681b1ae4d6e2ef5000005b6040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015260448201526064016020604051808303815f875af1158015613964573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139889190614e7b565b505b335f8181526013602052604090204360048201556005018290556139ae9082613323565b335f9081526013602052604081208054916139c883614b57565b9190505550611a1a600b80546001019055565b5f826139e78584613eee565b14949350505050565b5f6001600160e01b0319821663780e9d6360e01b1480610dbe5750610dbe82612397565b60605f613a22836002614e64565b613a2d906002614ca0565b6001600160401b03811115613a4457613a446142b2565b6040519080825280601f01601f191660200182016040528015613a6e576020820181803683370190505b509050600360fc1b815f81518110613a8857613a88614b2f565b60200101906001600160f81b03191690815f1a905350600f60fb1b81600181518110613ab657613ab6614b2f565b60200101906001600160f81b03191690815f1a9053505f613ad8846002614e64565b613ae3906001614ca0565b90505b6001811115613b5a576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110613b1757613b17614b2f565b1a60f81b828281518110613b2d57613b2d614b2f565b60200101906001600160f81b03191690815f1a90535060049490941c93613b5381614e96565b9050613ae6565b508315613ba95760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610e2b565b9392505050565b5f81815260146020526040902054600160d01b900460ff166001600160a01b0384161580613bdb5750805b613c1c5760405162461bcd60e51b8152602060048201526012602482015271151bdad95b881b9959591cc81c995d99585b60721b6044820152606401610e2b565b611a1a848484613f90565b5f80613c34606484614dd1565b9050602d811015613c47575f9150613c82565b604b811015613c595760019150613c82565b605a811015613c6b5760029150613c82565b6062811015613c7d5760039150613c82565b600491505b50919050565b60605f60648406838015613cbb5760018114613cc65760028114613cd15760038114613cdf5760048114613ced57613cf2565b601982109250613cf2565b603282109250613cf2565b600a82106001019250613cf2565b604b82106001019250613cf2565b600292505b50506040805160028082526060820183529091602083019080368337019050509150805f03613d215750610dbe565b600f54613d2e9085614dd1565b613d39906001614ca0565b825f81518110613d4b57613d4b614b2f565b60200260200101818152505080600203613dea575f600f54600886901c613d729190614dd1565b613d7d906001614ca0565b90505b825f81518110613d9257613d92614b2f565b60200260200101518103613dc857600f54600886901c95613db6919060101c614dd1565b613dc1906001614ca0565b9050613d80565b8083600181518110613ddc57613ddc614b2f565b602002602001018181525050505b5092915050565b5f6001600160a01b0384163b15613ee357604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290613e34903390899088908890600401614eab565b6020604051808303815f875af1925050508015613e6e575060408051601f3d908101601f19168201909252613e6b91810190614ee7565b60015b613ec9573d808015613e9b576040519150601f19603f3d011682016040523d82523d5f602084013e613ea0565b606091505b5080515f03613ec15760405162461bcd60e51b8152600401610e2b90614e12565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506129da565b506001949350505050565b5f81815b845181101561149f575f858281518110613f0e57613f0e614b2f565b60200260200101519050808311613f50576040805160208101859052908101829052606001604051602081830303815290604052805190602001209250613f7d565b60408051602081018390529081018490526060016040516020818303038152906040528051906020012092505b5080613f8881614b57565b915050613ef2565b6001600160a01b038316613fea57613fe581600880545f838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b61400d565b816001600160a01b0316836001600160a01b03161461400d5761400d8382614047565b6001600160a01b03821661402457610f5e816140e0565b826001600160a01b0316826001600160a01b031614610f5e57610f5e8282614187565b5f60016140538461155a565b61405d9190614daa565b5f838152600760205260409020549091508082146140ae576001600160a01b0384165f9081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b505f9182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b6008545f906140f190600190614daa565b5f838152600960205260408120546008805493945090928490811061411857614118614b2f565b905f5260205f2001549050806008838154811061413757614137614b2f565b5f91825260208083209091019290925582815260099091526040808220849055858252812055600880548061416e5761416e614f02565b600190038181905f5260205f20015f9055905550505050565b5f6141918361155a565b6001600160a01b039093165f908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b6001600160e01b03198116811461207a575f80fd5b5f602082840312156141ee575f80fd5b8135613ba9816141c9565b5f5b838110156142135781810151838201526020016141fb565b50505f910152565b5f81518084526142328160208601602086016141f9565b601f01601f19169290920160200192915050565b602081525f613ba9602083018461421b565b5f60208284031215614268575f80fd5b5035919050565b80356001600160a01b0381168114614285575f80fd5b919050565b5f806040838503121561429b575f80fd5b6142a48361426f565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b6040516102a081016001600160401b03811182821017156142e9576142e96142b2565b60405290565b604051601f8201601f191681016001600160401b0381118282101715614317576143176142b2565b604052919050565b803561ffff81168114614285575f80fd5b803560ff81168114614285575f80fd5b801515811461207a575f80fd5b803561428581614340565b5f808284036102c081121561436b575f80fd5b833592506102a080601f1983011215614382575f80fd5b61438a6142c6565b91506143986020860161431f565b82526143a66040860161431f565b60208301526143b76060860161431f565b60408301526143c86080860161431f565b60608301526143d960a0860161431f565b60808301526143ea60c0860161431f565b60a08301526143fb60e0860161431f565b60c083015261010061440e81870161431f565b60e0840152610120614421818801614330565b828501526101409150614435828801614330565b90840152610160614447878201614330565b82850152610180915061445b828801614330565b908401526101a061446d878201614330565b828501526101c09150614481828801614330565b908401526101e0614493878201614330565b8285015261020091506144a7828801614330565b908401526102206144b9878201614330565b8285015261024091506144cd828801614330565b908401526102606144df87820161434d565b918401919091526102808681013591840191909152940135938101939093525092909150565b5f805f805f60a08688031215614519575f80fd5b8535945061452960208701614330565b935061453760408701614330565b925061454560608701614330565b915061455360808701614330565b90509295509295909350565b5f805f60608486031215614571575f80fd5b61457a8461426f565b92506145886020850161426f565b9150604084013590509250925092565b5f805f606084860312156145aa575f80fd5b833592506145ba60208501614330565b91506145c86040850161431f565b90509250925092565b5f80604083850312156145e2575f80fd5b823591506145f26020840161426f565b90509250929050565b5f806040838503121561460c575f80fd5b823591506145f260208401614330565b5f6020828403121561462c575f80fd5b613ba98261426f565b602080825282518282018190525f9190848201906040850190845b8181101561466c57835183529284019291840191600101614650565b50909695505050505050565b5f8060408385031215614689575f80fd5b50508035926020909101359150565b5f80604083850312156146a9575f80fd5b823591506145f26020840161431f565b5f80602083850312156146ca575f80fd5b82356001600160401b03808211156146e0575f80fd5b818501915085601f8301126146f3575f80fd5b813581811115614701575f80fd5b866020828501011115614712575f80fd5b60209290920196919550909350505050565b5f8060408385031215614735575f80fd5b61473e8361426f565b9150602083013561474e81614340565b809150509250929050565b5f805f6060848603121561476b575f80fd5b8335925061477b60208501614330565b91506145c860408501614330565b815161ffff1681526102a0810160208301516147ab602084018261ffff169052565b5060408301516147c1604084018261ffff169052565b5060608301516147d7606084018261ffff169052565b5060808301516147ed608084018261ffff169052565b5060a083015161480360a084018261ffff169052565b5060c083015161481960c084018261ffff169052565b5060e083015161482f60e084018261ffff169052565b506101008381015160ff90811691840191909152610120808501518216908401526101408085015182169084015261016080850151821690840152610180808501518216908401526101a0808501518216908401526101c0808501518216908401526101e08085015182169084015261020080850151821690840152610220808501519091169083015261024080840151151590830152610260808401519083015261028092830151929091019190915290565b5f805f80608085870312156148f6575f80fd5b6148ff8561426f565b9350602061490e81870161426f565b93506040860135925060608601356001600160401b0380821115614930575f80fd5b818801915088601f830112614943575f80fd5b813581811115614955576149556142b2565b614967601f8201601f191685016142ef565b9150808252898482850101111561497c575f80fd5b80848401858401375f8482840101525080935050505092959194509250565b5f805f805f805f60e0888a0312156149b1575f80fd5b873596506149c16020890161431f565b95506149cf6040890161431f565b94506149dd6060890161431f565b93506149eb6080890161431f565b92506149f960a0890161431f565b9150614a0760c0890161431f565b905092959891949750929550565b5f60208284031215614a25575f80fd5b8135613ba981614340565b5f8060408385031215614a41575f80fd5b614a4a8361426f565b91506145f26020840161426f565b5f805f8060608587031215614a6b575f80fd5b84356001600160401b0380821115614a81575f80fd5b818701915087601f830112614a94575f80fd5b813581811115614aa2575f80fd5b8860208260051b8501011115614ab6575f80fd5b6020928301965094505085013591506040850135614ad381614340565b939692955090935050565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60018201614b6857614b68614b43565b5060010190565b600181811c90821680614b8357607f821691505b602082108103613c8257634e487b7160e01b5f52602260045260245ffd5b601f821115610f5e575f81815260208120601f850160051c81016020861015614bc75750805b601f850160051c820191505b818110156122fb57828155600101614bd3565b6001600160401b03831115614bfd57614bfd6142b2565b614c1183614c0b8354614b6f565b83614ba1565b5f601f841160018114614c42575f8515614c2b5750838201355b5f19600387901b1c1916600186901b178355611197565b5f83815260209020601f19861690835b82811015614c725786850135825560209485019460019092019101614c52565b5086821015614c8e575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b80820180821115610dbe57610dbe614b43565b5f808454614cc081614b6f565b60018281168015614cd85760018114614ced57614d19565b60ff1984168752821515830287019450614d19565b885f526020805f205f5b85811015614d105781548a820152908401908201614cf7565b50505082870194505b505050508351614d2d8183602088016141f9565b01949350505050565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081525f8351614d6d8160178501602088016141f9565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351614d9e8160288401602088016141f9565b01602801949350505050565b81810381811115610dbe57610dbe614b43565b634e487b7160e01b5f52601260045260245ffd5b5f82614ddf57614ddf614dbd565b500690565b5f82614df257614df2614dbd565b500490565b61ffff818116838216019080821115613dea57613dea614b43565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b8082028115828204841417610dbe57610dbe614b43565b5f60208284031215614e8b575f80fd5b8151613ba981614340565b5f81614ea457614ea4614b43565b505f190190565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f90614edd9083018461421b565b9695505050505050565b5f60208284031215614ef7575f80fd5b8151613ba9816141c9565b634e487b7160e01b5f52603160045260245ffdfe21d1167972f621f75904fb065136bc8b53c7ba1c60ccd3a7758fbee465851e9ca26469706673582212209a3f19d4b86e32f46300e47aa5de7c3ad88558deeba4bfabda2b87e5763eae9964736f6c634300081400339f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a621d1167972f621f75904fb065136bc8b53c7ba1c60ccd3a7758fbee465851e9c00000000000000000000000000000000000000000000000000000000000000400000000000000000000000001401439789259ac682637b1e87ea77df0599dc556128578af76312b3d62b7a30d91cbb0aeb787f606a60a8528f538c3ccdf18d5400000000000000000000000000000000000000000000000000000000663204ae00000000000000000000000000000000000000000000000000000000663205620000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000001368747470733a2f2f736f756c6e66742e696f2f00000000000000000000000000