6101406040523480156200001257600080fd5b5060405180604001604052806009815260200168536f6d6e694c69666560b81b815250604051806040016040528060018152602001603160f81b81525060405180604001604052806009815260200168536f6d6e694c69666560b81b81525060405180604001604052806002815260200161534f60f01b8152508160039080519060200190620000a492919062000b01565b508051620000ba90600490602084019062000b01565b50506005805460ff1916905550815160208084019190912082518383012060e08290526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81880181905281830187905260608201869052608082019490945230818401528151808203909301835260c00190528051940193909320919290916080523060601b60c05261012052506200016f9250620001699150503390565b620003ee565b6001600655620001a0731d18b432cccb5d317b5e2010e8456b6cf6d0bfd26b409f9cbc7c4a04c22000000062000448565b620001cc73aec1afa5c4f806f8b39173e72d5b174660af88306b204fce5e3e2502611000000062000448565b620001f873063ae224230e67a51d2691ae785179f258e5143a6b3077b58d5d3783919800000062000448565b620002247357d5ad3e08e82825c0c773ec0f2a848d863906f96b204fce5e3e2502611000000062000448565b62000250736e9414ca38f058db7575457b711ecb2efe2674a76b60ef6b1aba6f07233000000062000448565b6200027c731fcbc35a769face382e6a1978a5943bc89e9f1786b204fce5e3e2502611000000062000448565b620002a873401b9087c5db93748d9c23881aac8c0c54cfe5536b1027e72f1f1281308800000062000448565b620002d4731fcbc35a769face382e6a1978a5943bc89e9f178306aa56fa5b99019a5c800000062000516565b6200030a6000731fcbc35a769face382e6a1978a5943bc89e9f1787322792eeba92b2caf432789634beaddc03cf9d6d46200063e565b6200031860006001620006b9565b62000339731d18b432cccb5d317b5e2010e8456b6cf6d0bfd26001620006b9565b6200035a73aec1afa5c4f806f8b39173e72d5b174660af88306001620006b9565b6200037b73063ae224230e67a51d2691ae785179f258e5143a6001620006b9565b6200039c7357d5ad3e08e82825c0c773ec0f2a848d863906f96001620006b9565b620003bd736e9414ca38f058db7575457b711ecb2efe2674a76001620006b9565b620003de73401b9087c5db93748d9c23881aac8c0c54cfe5536001620006b9565b620003e862000735565b62000c0b565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6005546001600160a01b036101009091041633146200049d5760405162461bcd60e51b8152602060048201819052602482015260008051602062003c6683398151915260448201526064015b60405180910390fd5b6c01431e0fae6d7217caa000000081620004b660025490565b620004c2919062000ba7565b1115620005065760405162461bcd60e51b8152602060048201526011602482015270457863656564206d617820737570706c7960781b604482015260640162000494565b620005128282620007da565b5050565b6001600160a01b0383166200057a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840162000494565b6001600160a01b038216620005dd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000494565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6005546001600160a01b036101009091041633146200068f5760405162461bcd60e51b8152602060048201819052602482015260008051602062003c66833981519152604482015260640162000494565b6200069c826001620006b9565b620006a88383620008cd565b620006b4838262000951565b505050565b6005546001600160a01b036101009091041633146200070a5760405162461bcd60e51b8152602060048201819052602482015260008051602062003c66833981519152604482015260640162000494565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6005546001600160a01b03610100909104163314620007865760405162461bcd60e51b8152602060048201819052602482015260008051602062003c66833981519152604482015260640162000494565b60055460ff1615620007ce5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640162000494565b620007d8620009d5565b565b6001600160a01b038216620008325760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000494565b620008406000838362000a70565b806002600082825462000854919062000ba7565b90915550506001600160a01b038216600090815260208190526040812080548392906200088390849062000ba7565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6005546001600160a01b036101009091041633146200091e5760405162461bcd60e51b8152602060048201819052602482015260008051602062003c66833981519152604482015260640162000494565b60ff91909116600090815260096020526040902080546001600160a01b0319166001600160a01b03909216919091179055565b6005546001600160a01b03610100909104163314620009a25760405162461bcd60e51b8152602060048201819052602482015260008051602062003c66833981519152604482015260640162000494565b60ff919091166000908152600a6020526040902080546001600160a01b0319166001600160a01b03909216919091179055565b60055460ff161562000a1d5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640162000494565b6005805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25862000a533390565b6040516001600160a01b03909116815260200160405180910390a1565b62000a88838383620006b460201b62000b5b1760201c565b60055460ff16158062000ab357506001600160a01b03831660009081526007602052604090205460ff165b620006b45760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e207472616e73666572207768696c65207061757365640000000000604482015260640162000494565b82805462000b0f9062000bce565b90600052602060002090601f01602090048101928262000b33576000855562000b7e565b82601f1062000b4e57805160ff191683800117855562000b7e565b8280016001018555821562000b7e579182015b8281111562000b7e57825182559160200191906001019062000b61565b5062000b8c92915062000b90565b5090565b5b8082111562000b8c576000815560010162000b91565b6000821982111562000bc957634e487b7160e01b600052601160045260246000fd5b500190565b600181811c9082168062000be357607f821691505b6020821081141562000c0557634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05160601c60e051610100516101205161300862000c5e6000396000612373015260006123c20152600061239d015260006122f6015260006123200152600061234a01526130086000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c806379cc67901161010f578063a457c2d7116100a2578063e4a34dce11610071578063e4a34dce146104fd578063e862972514610510578063f2fde38b14610523578063f8d475f41461053657600080fd5b8063a457c2d71461047e578063a9059cbb14610491578063b44dfea1146104a4578063dd62ed3e146104b757600080fd5b806386aee6bc116100de57806386aee6bc1461040a57806387b9e12a1461041d5780638da5cb5b1461045357806395d89b411461047657600080fd5b806379cc6790146103715780637ffbe2411461038457806381c6af01146103a75780638456cb591461040257600080fd5b80633f4ba83a116101875780635c975abb116101565780635c975abb146103155780636de410511461032057806370a0823114610333578063715018a61461036957600080fd5b80633f4ba83a146102c057806340c10f19146102c857806342966c68146102db5780634344982f146102ee57600080fd5b8063313ce567116101c3578063313ce5671461025b57806335f4f72b1461026a578063395093511461027f5780633e95c9ef1461029257600080fd5b806306fdde03146101f5578063095ea7b31461021357806318160ddd1461023657806323b872dd14610248575b600080fd5b6101fd610549565b60405161020a9190612dfe565b60405180910390f35b610226610221366004612bbe565b6105db565b604051901515815260200161020a565b6002545b60405190815260200161020a565b610226610256366004612b4b565b6105f1565b6040516012815260200161020a565b61027d610278366004612be8565b6106de565b005b61022661028d366004612bbe565b610843565b6102266102a0366004612d19565b600860209081526000928352604080842090915290825290205460ff1681565b61027d61088c565b61027d6102d6366004612bbe565b610989565b61027d6102e9366004612ce5565b610aa8565b61023a7fc5498ad62d3087db936277480f57531bfca718a8b9068c01936998008004f7e381565b60055460ff16610226565b61027d61032e366004612d35565b610ab5565b61023a610341366004612afd565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b61027d610b60565b61027d61037f366004612bbe565b610bf1565b610226610392366004612afd565b60076020526000908152604090205460ff1681565b6103dd6103b5366004612cfe565b600a6020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161020a565b61027d610ca5565b61027d610418366004612d19565b610da1565b6103dd61042b366004612cfe565b60096020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff166103dd565b6101fd610e80565b61022661048c366004612bbe565b610e8f565b61022661049f366004612bbe565b610f67565b61027d6104b2366004612d19565b610f74565b61023a6104c5366004612b18565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b61027d61050b366004612b87565b611053565b61027d61051e366004612d78565b611130565b61027d610531366004612afd565b611551565b61027d610544366004612c54565b611684565b60606003805461055890612eaa565b80601f016020809104026020016040519081016040528092919081815260200182805461058490612eaa565b80156105d15780601f106105a6576101008083540402835291602001916105d1565b820191906000526020600020905b8154815290600101906020018083116105b457829003601f168201915b5050505050905090565b60006105e833848461175e565b50600192915050565b60006105fe848484611911565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600160209081526040808320338452909152902054828110156106c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6106d1853385840361175e565b60019150505b9392505050565b60055473ffffffffffffffffffffffffffffffffffffffff610100909104163314610765576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106bb565b8281146107ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6c656e677468206572726f72000000000000000000000000000000000000000060448201526064016106bb565b60005b8381101561083c5761082a8585838181106107ee576107ee612f95565b90506020020160208101906108039190612afd565b84848481811061081557610815612f95565b905060200201602081019061050b9190612cab565b8061083481612efe565b9150506107d1565b5050505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490916105e8918590610887908690612e4f565b61175e565b60055473ffffffffffffffffffffffffffffffffffffffff610100909104163314610913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106bb565b60055460ff1661097f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016106bb565b610987611bcf565b565b60055473ffffffffffffffffffffffffffffffffffffffff610100909104163314610a10576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106bb565b6c01431e0fae6d7217caa000000081610a2860025490565b610a329190612e4f565b1115610a9a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f457863656564206d617820737570706c7900000000000000000000000000000060448201526064016106bb565b610aa48282611cb0565b5050565b610ab23382611ddc565b50565b60055473ffffffffffffffffffffffffffffffffffffffff610100909104163314610b3c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106bb565b610b47826001611053565b610b518383610da1565b610b5b8382610f74565b505050565b60055473ffffffffffffffffffffffffffffffffffffffff610100909104163314610be7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106bb565b6109876000611fd5565b6000610bfd83336104c5565b905081811015610c8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f7760448201527f616e63650000000000000000000000000000000000000000000000000000000060648201526084016106bb565b610c9b833384840361175e565b610b5b8383611ddc565b60055473ffffffffffffffffffffffffffffffffffffffff610100909104163314610d2c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106bb565b60055460ff1615610d99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016106bb565b610987612053565b60055473ffffffffffffffffffffffffffffffffffffffff610100909104163314610e28576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106bb565b60ff91909116600090815260096020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60606004805461055890612eaa565b33600090815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616845290915281205482811015610f50576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016106bb565b610f5d338585840361175e565b5060019392505050565b60006105e8338484611911565b60055473ffffffffffffffffffffffffffffffffffffffff610100909104163314610ffb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106bb565b60ff919091166000908152600a6020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60055473ffffffffffffffffffffffffffffffffffffffff6101009091041633146110da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106bb565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260076020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b6002600654141561119d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016106bb565b600260065560ff87811660009081526008602090815260408083203384529091529020541615611229576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f436c61696d65640000000000000000000000000000000000000000000000000060448201526064016106bb565b60006112ab7fc5498ad62d3087db936277480f57531bfca718a8b9068c01936998008004f7e33360408051602081019390935273ffffffffffffffffffffffffffffffffffffffff91821690830152606082018a90528816608082015260a0810187905260c00160405160208183030381529060405280519060200120612113565b60ff89166000908152600a602052604090205490915073ffffffffffffffffffffffffffffffffffffffff161580159061132d575060ff88166000908152600a602052604090205473ffffffffffffffffffffffffffffffffffffffff1661131582868686612182565b73ffffffffffffffffffffffffffffffffffffffff16145b611393576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f496e76616c6964207369676e657200000000000000000000000000000000000060448201526064016106bb565b60ff881660009081526009602052604090205473ffffffffffffffffffffffffffffffffffffffff16611422576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f496e76616c69642050726f76696465720000000000000000000000000000000060448201526064016106bb565b60ff881660009081526009602052604090205461145890309073ffffffffffffffffffffffffffffffffffffffff16338a6121aa565b73ffffffffffffffffffffffffffffffffffffffff8616156114aa5760ff88166000908152600960205260409020546114aa90309073ffffffffffffffffffffffffffffffffffffffff1688886121aa565b60ff88166000818152600860209081526040808320338085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580518b815291820189905273ffffffffffffffffffffffffffffffffffffffff8a1693917f864bfc6911270e2b40a52be6af296bf29191ad533fe2968c45c61fc3b0529f2b910160405180910390a450506001600655505050505050565b60055473ffffffffffffffffffffffffffffffffffffffff6101009091041633146115d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106bb565b73ffffffffffffffffffffffffffffffffffffffff811661167b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016106bb565b610ab281611fd5565b60055473ffffffffffffffffffffffffffffffffffffffff61010090910416331461170b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106bb565b60005b828110156117585761174684848381811061172b5761172b612f95565b90506020020160208101906117409190612afd565b83611053565b8061175081612efe565b91505061170e565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316611800576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016106bb565b73ffffffffffffffffffffffffffffffffffffffff82166118a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016106bb565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff83166119b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016106bb565b73ffffffffffffffffffffffffffffffffffffffff8216611a57576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016106bb565b611a6283838361223f565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015611b18576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016106bb565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220858503905591851681529081208054849290611b5c908490612e4f565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611bc291815260200190565b60405180910390a3611758565b60055460ff16611c3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016106bb565b600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b73ffffffffffffffffffffffffffffffffffffffff8216611d2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016106bb565b611d396000838361223f565b8060026000828254611d4b9190612e4f565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604081208054839290611d85908490612e4f565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b73ffffffffffffffffffffffffffffffffffffffff8216611e7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016106bb565b611e8b8260008361223f565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090205481811015611f41576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016106bb565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081905260408120838303905560028054849290611f7d908490612e67565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b6005805473ffffffffffffffffffffffffffffffffffffffff8381166101008181027fffffffffffffffffffffff0000000000000000000000000000000000000000ff85161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60055460ff16156120c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016106bb565b600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611c863390565b600061217c6121206122dc565b836040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b92915050565b600080600061219387878787612410565b915091506121a081612528565b5095945050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052611758908590612781565b60055460ff161580612276575073ffffffffffffffffffffffffffffffffffffffff831660009081526007602052604090205460ff165b610b5b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f546f6b656e207472616e73666572207768696c6520706175736564000000000060448201526064016106bb565b60003073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614801561234257507f000000000000000000000000000000000000000000000000000000000000000046145b1561236c57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115612447575060009050600361251f565b8460ff16601b1415801561245f57508460ff16601c14155b15612470575060009050600461251f565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156124c4573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166125185760006001925092505061251f565b9150600090505b94509492505050565b600081600481111561253c5761253c612f66565b14156125455750565b600181600481111561255957612559612f66565b14156125c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016106bb565b60028160048111156125d5576125d5612f66565b141561263d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016106bb565b600381600481111561265157612651612f66565b14156126df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016106bb565b60048160048111156126f3576126f3612f66565b1415610ab2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016106bb565b60006127e3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661288d9092919063ffffffff16565b805190915015610b5b57808060200190518101906128019190612cc8565b610b5b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016106bb565b606061289c84846000856128a4565b949350505050565b606082471015612936576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016106bb565b843b61299e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106bb565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516129c79190612de2565b60006040518083038185875af1925050503d8060008114612a04576040519150601f19603f3d011682016040523d82523d6000602084013e612a09565b606091505b5091509150612a19828286612a24565b979650505050505050565b60608315612a335750816106d7565b825115612a435782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106bb9190612dfe565b803573ffffffffffffffffffffffffffffffffffffffff81168114612a9b57600080fd5b919050565b60008083601f840112612ab257600080fd5b50813567ffffffffffffffff811115612aca57600080fd5b6020830191508360208260051b8501011115612ae557600080fd5b9250929050565b803560ff81168114612a9b57600080fd5b600060208284031215612b0f57600080fd5b6106d782612a77565b60008060408385031215612b2b57600080fd5b612b3483612a77565b9150612b4260208401612a77565b90509250929050565b600080600060608486031215612b6057600080fd5b612b6984612a77565b9250612b7760208501612a77565b9150604084013590509250925092565b60008060408385031215612b9a57600080fd5b612ba383612a77565b91506020830135612bb381612fc4565b809150509250929050565b60008060408385031215612bd157600080fd5b612bda83612a77565b946020939093013593505050565b60008060008060408587031215612bfe57600080fd5b843567ffffffffffffffff80821115612c1657600080fd5b612c2288838901612aa0565b90965094506020870135915080821115612c3b57600080fd5b50612c4887828801612aa0565b95989497509550505050565b600080600060408486031215612c6957600080fd5b833567ffffffffffffffff811115612c8057600080fd5b612c8c86828701612aa0565b9094509250506020840135612ca081612fc4565b809150509250925092565b600060208284031215612cbd57600080fd5b81356106d781612fc4565b600060208284031215612cda57600080fd5b81516106d781612fc4565b600060208284031215612cf757600080fd5b5035919050565b600060208284031215612d1057600080fd5b6106d782612aec565b60008060408385031215612d2c57600080fd5b612b3483612aec565b600080600060608486031215612d4a57600080fd5b612d5384612aec565b9250612d6160208501612a77565b9150612d6f60408501612a77565b90509250925092565b600080600080600080600060e0888a031215612d9357600080fd5b612d9c88612aec565b965060208801359550612db160408901612a77565b945060608801359350612dc660808901612aec565b925060a0880135915060c0880135905092959891949750929550565b60008251612df4818460208701612e7e565b9190910192915050565b6020815260008251806020840152612e1d816040850160208701612e7e565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60008219821115612e6257612e62612f37565b500190565b600082821015612e7957612e79612f37565b500390565b60005b83811015612e99578181015183820152602001612e81565b838111156117585750506000910152565b600181811c90821680612ebe57607f821691505b60208210811415612ef8577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612f3057612f30612f37565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8015158114610ab257600080fdfea26469706673582212200dbb3bf41652eb3645de2d18ab6fae6b552948c9ab5ee41ddde3b721f0082a3164736f6c634300080700334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572