6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506b033b2e3c9fd0803ce800000060001962000075919062000457565b600019620000849190620003dc565b6009556001600b60006101000a81548160ff0219169083151502179055506040518060400160405280600981526020017f4b6f646163686920200000000000000000000000000000000000000000000000815250600c9080519060200190620000ef929190620002fe565b506040518060400160405280600781526020017f4b4f444143484900000000000000000000000000000000000000000000000000815250600d90805190602001906200013d929190620002fe565b506012600e60006101000a81548160ff021916908360ff1602179055503480156200016757600080fd5b5060006200017a620002f660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600954600160006200022f620002f660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200027d620002f660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6b033b2e3c9fd0803ce8000000604051620002e89190620003bf565b60405180910390a36200051c565b600033905090565b8280546200030c9062000421565b90600052602060002090601f0160209004810192826200033057600085556200037c565b82601f106200034b57805160ff19168380011785556200037c565b828001600101855582156200037c579182015b828111156200037b5782518255916020019190600101906200035e565b5b5090506200038b91906200038f565b5090565b5b80821115620003aa57600081600090555060010162000390565b5090565b620003b98162000417565b82525050565b6000602082019050620003d66000830184620003ae565b92915050565b6000620003e98262000417565b9150620003f68362000417565b9250828210156200040c576200040b6200048f565b5b828203905092915050565b6000819050919050565b600060028204905060018216806200043a57607f821691505b60208210811415620004515762000450620004ed565b5b50919050565b6000620004648262000417565b9150620004718362000417565b925082620004845762000483620004be565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6140be806200052c6000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c8063715018a6116100de578063a9059cbb11610097578063dd62ed3e11610071578063dd62ed3e14610464578063f2cc0c1814610494578063f2fde38b146104b0578063f84354f1146104cc57610173565b8063a9059cbb146103fa578063cba0e9961461042a578063db63328e1461045a57610173565b8063715018a61461034857806384a3f5c0146103525780638da5cb5b1461037057806393ea49831461038e57806395d89b41146103ac578063a457c2d7146103ca57610173565b806323b872dd1161013057806323b872dd1461023a5780632d8381191461026a578063313ce5671461029a57806339509351146102b85780634549b039146102e857806370a082311461031857610173565b8063053ab1821461017857806306fdde0314610194578063095ea7b3146101b25780630bffdcf4146101e257806313114a9d146101fe57806318160ddd1461021c575b600080fd5b610192600480360381019061018d91906134c1565b6104e8565b005b61019c610662565b6040516101a991906137c1565b60405180910390f35b6101cc60048036038101906101c7919061345c565b6106f4565b6040516101d991906137a6565b60405180910390f35b6101fc60048036038101906101f79190613498565b610712565b005b6102066107c4565b6040516102139190613983565b60405180910390f35b6102246107ce565b6040516102319190613983565b60405180910390f35b610254600480360381019061024f919061340d565b6107e2565b60405161026191906137a6565b60405180910390f35b610284600480360381019061027f91906134c1565b6108bb565b6040516102919190613983565b60405180910390f35b6102a2610929565b6040516102af919061399e565b60405180910390f35b6102d260048036038101906102cd919061345c565b610940565b6040516102df91906137a6565b60405180910390f35b61030260048036038101906102fd91906134ea565b6109f3565b60405161030f9190613983565b60405180910390f35b610332600480360381019061032d919061337f565b610a7f565b60405161033f9190613983565b60405180910390f35b610350610b6a565b005b61035a610cbd565b6040516103679190613983565b60405180910390f35b610378610cc3565b6040516103859190613762565b60405180910390f35b610396610cec565b6040516103a39190613983565b60405180910390f35b6103b4610cf2565b6040516103c191906137c1565b60405180910390f35b6103e460048036038101906103df919061345c565b610d84565b6040516103f191906137a6565b60405180910390f35b610414600480360381019061040f919061345c565b610e51565b60405161042191906137a6565b60405180910390f35b610444600480360381019061043f919061337f565b610e6f565b60405161045191906137a6565b60405180910390f35b610462610ec5565b005b61047e600480360381019061047991906133d1565b6111a5565b60405161048b9190613983565b60405180910390f35b6104ae60048036038101906104a9919061337f565b61122c565b005b6104ca60048036038101906104c5919061337f565b6114e0565b005b6104e660048036038101906104e1919061337f565b6116a2565b005b60006104f2611a89565b9050600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610581576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057890613963565b60405180910390fd5b600061058c83611a91565b5050505090506105e481600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ae990919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061063c81600954611ae990919063ffffffff16565b60098190555061065783600a54611b3390919063ffffffff16565b600a81905550505050565b6060600c805461067190613b72565b80601f016020809104026020016040519081016040528092919081815260200182805461069d90613b72565b80156106ea5780601f106106bf576101008083540402835291602001916106ea565b820191906000526020600020905b8154815290600101906020018083116106cd57829003601f168201915b5050505050905090565b6000610708610701611a89565b8484611b91565b6001905092915050565b61071a611a89565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079e906138e3565b60405180910390fd5b80600b60006101000a81548160ff02191690831515021790555050565b6000600a54905090565b60006b033b2e3c9fd0803ce8000000905090565b60006107ef848484611d5c565b6108b0846107fb611a89565b6108ab8560405180606001604052806028815260200161403c60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610861611a89565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121739092919063ffffffff16565b611b91565b600190509392505050565b6000600954821115610902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f990613803565b60405180910390fd5b600061090c6121d7565b9050610921818461220290919063ffffffff16565b915050919050565b6000600e60009054906101000a900460ff16905090565b60006109e961094d611a89565b846109e4856003600061095e611a89565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3390919063ffffffff16565b611b91565b6001905092915050565b60006b033b2e3c9fd0803ce8000000831115610a44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3b906138a3565b60405180910390fd5b81610a63576000610a5484611a91565b50505050905080915050610a79565b6000610a6e84611a91565b505050915050809150505b92915050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610b1a57600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610b65565b610b62600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108bb565b90505b919050565b610b72611a89565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf6906138e3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b6060600d8054610d0190613b72565b80601f0160208091040260200160405190810160405280929190818152602001828054610d2d90613b72565b8015610d7a5780601f10610d4f57610100808354040283529160200191610d7a565b820191906000526020600020905b815481529060010190602001808311610d5d57829003601f168201915b5050505050905090565b6000610e47610d91611a89565b84610e42856040518060600160405280602581526020016140646025913960036000610dbb611a89565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121739092919063ffffffff16565b611b91565b6001905092915050565b6000610e65610e5e611a89565b8484611d5c565b6001905092915050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610ecd611a89565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f51906138e3565b60405180910390fd5b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610fc457600080fd5b505afa158015610fd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffc91906133a8565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561108057600080fd5b505afa158015611094573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b891906133a8565b6040518363ffffffff1660e01b81526004016110d592919061377d565b60206040518083038186803b1580156110ed57600080fd5b505afa158015611101573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112591906133a8565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561116157600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611234611a89565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b8906138e3565b60405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561134e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134590613883565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611422576113de600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108bb565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506006819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6114e8611a89565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611575576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156c906138e3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156115e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115dc90613823565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6116aa611a89565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611737576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172e906138e3565b60405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166117c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ba90613883565b60405180910390fd5b60005b600680549050811015611a85578173ffffffffffffffffffffffffffffffffffffffff1660068281548110611824577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611a72576006600160068054905061187f9190613ab6565b815481106118b6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166006828154811061191b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506006805480611a38577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611a85565b8080611a7d90613ba4565b9150506117c6565b5050565b600033905090565b6000806000806000806000611aa58861224c565b915091506000611ab36121d7565b90506000806000611ac58c86866122c9565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b6000611b2b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612173565b905092915050565b6000808284611b4291906139d5565b905083811015611b87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7e90613863565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf890613943565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6890613843565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d4f9190613983565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611dcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc390613923565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e33906137e3565b60405180910390fd5b60008111611e7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7690613903565b60405180910390fd5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611f225750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f3757611f32838383612327565b61216e565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611fda5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611fef57611fea83838361257a565b61216d565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120935750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120a8576120a38383836127cd565b61216c565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561214a5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561215f5761215a838383612bb8565b61216b565b61216a8383836127cd565b5b5b5b5b505050565b60008383111582906121bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b291906137c1565b60405180910390fd5b50600083856121ca9190613ab6565b9050809150509392505050565b60008060006121e4612ea0565b915091506121fb818361220290919063ffffffff16565b9250505090565b600061224483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613213565b905092915050565b60008060006d017aa73a606841b3e173800000006b033b2e3c9fd0803ce8000000106122a057612299600261228b60648761220290919063ffffffff16565b61327690919063ffffffff16565b90506122a5565b600090505b60006122ba8286611ae990919063ffffffff16565b90508082935093505050915091565b6000806000806122e2858861327690919063ffffffff16565b905060006122f9868861327690919063ffffffff16565b905060006123108284611ae990919063ffffffff16565b905082818395509550955050505093509350939050565b600080600080600061233886611a91565b9450945094509450945061239486600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ae990919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061242985600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ae990919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124be84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3390919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061250b83826132f1565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125689190613983565b60405180910390a35050505050505050565b600080600080600061258b86611a91565b945094509450945094506125e785600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ae990919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061267c82600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3390919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061271184600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3390919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061275e83826132f1565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127bb9190613983565b60405180910390a35050505050505050565b6127d5610cc3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156128435750612813610cc3565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156129fa57600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461295257600b60009054906101000a900460ff166128b657600080fd5b42600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061290157600080fd5b60234261290e91906139d5565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156129f9576023426129b591906139d5565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b6000806000806000612a0b86611a91565b94509450945094509450612a6785600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ae990919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612afc84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3390919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b4983826132f1565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612ba69190613983565b60405180910390a35050505050505050565b6000806000806000612bc986611a91565b94509450945094509450612c2586600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ae990919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612cba85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ae990919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d4f82600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3390919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612de484600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3390919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e3183826132f1565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612e8e9190613983565b60405180910390a35050505050505050565b6000806000600954905060006b033b2e3c9fd0803ce8000000905060005b6006805490508110156131c257826001600060068481548110612f0a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118061301e5750816002600060068481548110612fb6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1561303f576009546b033b2e3c9fd0803ce80000009450945050505061320f565b6130f56001600060068481548110613080577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611ae990919063ffffffff16565b92506131ad6002600060068481548110613138577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611ae990919063ffffffff16565b915080806131ba90613ba4565b915050612ebe565b506131e46b033b2e3c9fd0803ce800000060095461220290919063ffffffff16565b821015613206576009546b033b2e3c9fd0803ce800000093509350505061320f565b81819350935050505b9091565b6000808311829061325a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161325191906137c1565b60405180910390fd5b50600083856132699190613a2b565b9050809150509392505050565b60008083141561328957600090506132eb565b600082846132979190613a5c565b90508284826132a69190613a2b565b146132e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132dd906138c3565b60405180910390fd5b809150505b92915050565b61330682600954611ae990919063ffffffff16565b60098190555061332181600a54611b3390919063ffffffff16565b600a819055505050565b60008135905061333a81613ff6565b92915050565b60008151905061334f81613ff6565b92915050565b6000813590506133648161400d565b92915050565b60008135905061337981614024565b92915050565b60006020828403121561339157600080fd5b600061339f8482850161332b565b91505092915050565b6000602082840312156133ba57600080fd5b60006133c884828501613340565b91505092915050565b600080604083850312156133e457600080fd5b60006133f28582860161332b565b92505060206134038582860161332b565b9150509250929050565b60008060006060848603121561342257600080fd5b60006134308682870161332b565b93505060206134418682870161332b565b92505060406134528682870161336a565b9150509250925092565b6000806040838503121561346f57600080fd5b600061347d8582860161332b565b925050602061348e8582860161336a565b9150509250929050565b6000602082840312156134aa57600080fd5b60006134b884828501613355565b91505092915050565b6000602082840312156134d357600080fd5b60006134e18482850161336a565b91505092915050565b600080604083850312156134fd57600080fd5b600061350b8582860161336a565b925050602061351c85828601613355565b9150509250929050565b61352f81613aea565b82525050565b61353e81613afc565b82525050565b600061354f826139b9565b61355981856139c4565b9350613569818560208601613b3f565b61357281613c7a565b840191505092915050565b600061358a6023836139c4565b915061359582613c8b565b604082019050919050565b60006135ad602a836139c4565b91506135b882613cda565b604082019050919050565b60006135d06026836139c4565b91506135db82613d29565b604082019050919050565b60006135f36022836139c4565b91506135fe82613d78565b604082019050919050565b6000613616601b836139c4565b915061362182613dc7565b602082019050919050565b6000613639601b836139c4565b915061364482613df0565b602082019050919050565b600061365c601f836139c4565b915061366782613e19565b602082019050919050565b600061367f6021836139c4565b915061368a82613e42565b604082019050919050565b60006136a26020836139c4565b91506136ad82613e91565b602082019050919050565b60006136c56029836139c4565b91506136d082613eba565b604082019050919050565b60006136e86025836139c4565b91506136f382613f09565b604082019050919050565b600061370b6024836139c4565b915061371682613f58565b604082019050919050565b600061372e602c836139c4565b915061373982613fa7565b604082019050919050565b61374d81613b28565b82525050565b61375c81613b32565b82525050565b60006020820190506137776000830184613526565b92915050565b60006040820190506137926000830185613526565b61379f6020830184613526565b9392505050565b60006020820190506137bb6000830184613535565b92915050565b600060208201905081810360008301526137db8184613544565b905092915050565b600060208201905081810360008301526137fc8161357d565b9050919050565b6000602082019050818103600083015261381c816135a0565b9050919050565b6000602082019050818103600083015261383c816135c3565b9050919050565b6000602082019050818103600083015261385c816135e6565b9050919050565b6000602082019050818103600083015261387c81613609565b9050919050565b6000602082019050818103600083015261389c8161362c565b9050919050565b600060208201905081810360008301526138bc8161364f565b9050919050565b600060208201905081810360008301526138dc81613672565b9050919050565b600060208201905081810360008301526138fc81613695565b9050919050565b6000602082019050818103600083015261391c816136b8565b9050919050565b6000602082019050818103600083015261393c816136db565b9050919050565b6000602082019050818103600083015261395c816136fe565b9050919050565b6000602082019050818103600083015261397c81613721565b9050919050565b60006020820190506139986000830184613744565b92915050565b60006020820190506139b36000830184613753565b92915050565b600081519050919050565b600082825260208201905092915050565b60006139e082613b28565b91506139eb83613b28565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a2057613a1f613bed565b5b828201905092915050565b6000613a3682613b28565b9150613a4183613b28565b925082613a5157613a50613c1c565b5b828204905092915050565b6000613a6782613b28565b9150613a7283613b28565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613aab57613aaa613bed565b5b828202905092915050565b6000613ac182613b28565b9150613acc83613b28565b925082821015613adf57613ade613bed565b5b828203905092915050565b6000613af582613b08565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015613b5d578082015181840152602081019050613b42565b83811115613b6c576000848401525b50505050565b60006002820490506001821680613b8a57607f821691505b60208210811415613b9e57613b9d613c4b565b5b50919050565b6000613baf82613b28565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613be257613be1613bed565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460008201527f6869732066756e6374696f6e0000000000000000000000000000000000000000602082015250565b613fff81613aea565b811461400a57600080fd5b50565b61401681613afc565b811461402157600080fd5b50565b61402d81613b28565b811461403857600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220834c7d4c078484ef4e238b106ab15807c28429225e6238f4fdc0c5702b95053f64736f6c63430008010033