60806040526000600560006101000a81548160ff02191690831515021790555060196006556019600755600060085560066009556014600a556014600b556005600c556000600d556103e860146012600a6200005c9190620006bb565b6305f5e1006200006d91906200070c565b6200007991906200070c565b62000085919062000786565b600e556103e860146012600a6200009d9190620006bb565b6305f5e100620000ae91906200070c565b620000ba91906200070c565b620000c6919062000786565b600f55620186a060016012600a620000df9190620006bb565b6305f5e100620000f091906200070c565b620000fc91906200070c565b62000108919062000786565b6010556103e860026012600a620001209190620006bb565b6305f5e1006200013191906200070c565b6200013d91906200070c565b62000149919062000786565b6011556000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff0219169083151502179055503480156200018f57600080fd5b5060405162003e4238038062003e428339818101604052810190620001b5919062000828565b6000620001c7620004f060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620002b69190620006bb565b6305f5e100620002c791906200070c565b60016000620002db620004f060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360006200032f620004f860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000462620004f060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620004c19190620006bb565b6305f5e100620004d291906200070c565b604051620004e191906200086b565b60405180910390a35062000888565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620005af5780860481111562000587576200058662000521565b5b6001851615620005975780820291505b8081029050620005a78562000550565b945062000567565b94509492505050565b600082620005ca57600190506200069d565b81620005da57600090506200069d565b8160018114620005f35760028114620005fe5762000634565b60019150506200069d565b60ff84111562000613576200061262000521565b5b8360020a9150848211156200062d576200062c62000521565b5b506200069d565b5060208310610133831016604e8410600b84101617156200066e5782820a90508381111562000668576200066762000521565b5b6200069d565b6200067d84848460016200055d565b9250905081840481111562000697576200069662000521565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620006c882620006a4565b9150620006d583620006ae565b9250620007047fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620005b8565b905092915050565b60006200071982620006a4565b91506200072683620006a4565b92508282026200073681620006a4565b9150828204841483151762000750576200074f62000521565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200079382620006a4565b9150620007a083620006a4565b925082620007b357620007b262000757565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007f082620007c3565b9050919050565b6200080281620007e3565b81146200080e57600080fd5b50565b6000815190506200082281620007f7565b92915050565b600060208284031215620008415762000840620007be565b5b6000620008518482850162000811565b91505092915050565b6200086581620006a4565b82525050565b60006020820190506200088260008301846200085a565b92915050565b6135aa80620008986000396000f3fe6080604052600436106101395760003560e01c8063715018a6116100ab578063a164b1a51161006f578063a164b1a5146103ef578063a9059cbb14610406578063c876d0b914610443578063dd62ed3e1461046e578063e0f83b16146104ab578063ea911be9146104c257610140565b8063715018a61461032c5780637830b0721461034357806382247ec01461036e5780638da5cb5b1461039957806395d89b41146103c457610140565b806323b872dd116100fd57806323b872dd1461022e578063313ce5671461026b57806347819fdf1461029657806349bd5a5e146102ad57806351828487146102d857806370a08231146102ef57610140565b806306fdde0314610145578063095ea7b3146101705780630faee56f146101ad5780631694505e146101d857806318160ddd1461020357610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104ed565b60405161016791906124fe565b60405180910390f35b34801561017c57600080fd5b50610197600480360381019061019291906125b9565b61052a565b6040516101a49190612614565b60405180910390f35b3480156101b957600080fd5b506101c2610548565b6040516101cf919061263e565b60405180910390f35b3480156101e457600080fd5b506101ed61054e565b6040516101fa91906126b8565b60405180910390f35b34801561020f57600080fd5b50610218610574565b604051610225919061263e565b60405180910390f35b34801561023a57600080fd5b50610255600480360381019061025091906126d3565b610598565b6040516102629190612614565b60405180910390f35b34801561027757600080fd5b50610280610671565b60405161028d9190612742565b60405180910390f35b3480156102a257600080fd5b506102ab61067a565b005b3480156102b957600080fd5b506102c2610b2c565b6040516102cf919061276c565b60405180910390f35b3480156102e457600080fd5b506102ed610b52565b005b3480156102fb57600080fd5b5061031660048036038101906103119190612787565b610c6f565b604051610323919061263e565b60405180910390f35b34801561033857600080fd5b50610341610cb8565b005b34801561034f57600080fd5b50610358610e0b565b604051610365919061263e565b60405180910390f35b34801561037a57600080fd5b50610383610e11565b604051610390919061263e565b60405180910390f35b3480156103a557600080fd5b506103ae610e17565b6040516103bb919061276c565b60405180910390f35b3480156103d057600080fd5b506103d9610e40565b6040516103e691906124fe565b60405180910390f35b3480156103fb57600080fd5b50610404610e7d565b005b34801561041257600080fd5b5061042d600480360381019061042891906125b9565b610fc8565b60405161043a9190612614565b60405180910390f35b34801561044f57600080fd5b50610458610fe6565b6040516104659190612614565b60405180910390f35b34801561047a57600080fd5b50610495600480360381019061049091906127b4565b610ff9565b6040516104a2919061263e565b60405180910390f35b3480156104b757600080fd5b506104c0611080565b005b3480156104ce57600080fd5b506104d76111a1565b6040516104e4919061263e565b60405180910390f35b60606040518060400160405280600981526020017f4461707047756172640000000000000000000000000000000000000000000000815250905090565b600061053e6105376111a7565b84846111af565b6001905092915050565b60115481565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006012600a6105849190612956565b6305f5e10061059391906129a1565b905090565b60006105a5848484611378565b610666846105b16111a7565b6106618560405180606001604052806028815260200161354d60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106176111a7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f1e9092919063ffffffff16565b6111af565b600190509392505050565b60006012905090565b6106826111a7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461070f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070690612a2f565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506107ad30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a6107999190612956565b6305f5e1006107a891906129a1565b6111af565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561081a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083e9190612a64565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108eb9190612a64565b6040518363ffffffff1660e01b8152600401610908929190612a91565b6020604051808303816000875af1158015610927573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094b9190612a64565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306109d430610c6f565b6000806109df610e17565b426040518863ffffffff1660e01b8152600401610a0196959493929190612af5565b60606040518083038185885af1158015610a1f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a449190612b6b565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610ae6929190612bbe565b6020604051808303816000875af1158015610b05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b299190612c13565b50565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b5a6111a7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610be7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bde90612a2f565b60405180910390fd5b601360149054906101000a900460ff1615610c37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2e90612c8c565b60405180910390fd5b6001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cc06111a7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4490612a2f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e5481565b600f5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f4755415244000000000000000000000000000000000000000000000000000000815250905090565b610e856111a7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0990612a2f565b60405180910390fd5b6012600a610f209190612956565b6305f5e100610f2f91906129a1565b600e819055506012600a610f439190612956565b6305f5e100610f5291906129a1565b600f819055506000600560006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610fa29190612956565b6305f5e100610fb191906129a1565b604051610fbe919061263e565b60405180910390a1565b6000610fdc610fd56111a7565b8484611378565b6001905092915050565b600560009054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6110886111a7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611115576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110c90612a2f565b60405180910390fd5b60004711611158576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114f90612cf8565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561119e573d6000803e3d6000fd5b50565b60105481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361121e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121590612d8a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361128d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128490612e1c565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161136b919061263e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113de90612eae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611456576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144d90612f40565b60405180910390fd5b60008111611499576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149090612fd2565b60405180910390fd5b6000808290506114a7610e17565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415801561151557506114e5610e17565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561154d57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611c6057600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115f65750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561164b57601360149054906101000a900460ff1661164a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116419061303e565b60405180910390fd5b5b600560009054906101000a900460ff16156117d857601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561170c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156117d75743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611792576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611789906130d0565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156118835750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156118d95750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561199457600e54831115611923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191a9061313c565b60405180910390fd5b600f548361193086610c6f565b61193a919061315c565b111561197b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611972906131dc565b60405180910390fd5b600d600081548092919061198e906131fc565b91905055505b6119d060646119c2600a54600d54116119af576006546119b3565b6008545b86611f8290919063ffffffff16565b611ffc90919063ffffffff16565b9150601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611a5b57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611b5c57600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611ad757611acc83611ac7600854601054612046565b612046565b905060009150611b5b565b600e54831115611b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b139061313c565b60405180910390fd5b611b586064611b4a600b54600d5411611b3757600754611b3b565b6009545b86611f8290919063ffffffff16565b611ffc90919063ffffffff16565b91505b5b6000611b6730610c6f565b90506000600c54600d54118015611b8a5750611b8585601054612046565b601054145b9050601360159054906101000a900460ff16158015611bf65750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b8015611c0e5750601360169054906101000a900460ff165b8015611c1d5750600c54600d54115b8015611c265750805b15611c5d57601054821115611c5357611c52611c4d86611c4885601154612046565b612046565b61205f565b5b611c5c476122f7565b5b50505b6000821115611d6457611cbb82600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236390919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d5b919061263e565b60405180910390a35b611db681600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123c190919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e5d611e0f83856123c190919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611f0285876123c190919063ffffffff16565b604051611f0f919061263e565b60405180910390a35050505050565b6000838311158290611f66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5d91906124fe565b60405180910390fd5b5060008385611f759190613244565b9050809150509392505050565b6000808303611f945760009050611ff6565b60008284611fa291906129a1565b9050828482611fb191906132a7565b14611ff1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe89061334a565b60405180910390fd5b809150505b92915050565b600061203e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061240b565b905092915050565b60008183116120555782612057565b815b905092915050565b6001601360156101000a81548160ff02191690831515021790555060008103156122d957601360149054906101000a900460ff16156122d9576000600267ffffffffffffffff8111156120b5576120b461336a565b5b6040519080825280602002602001820160405280156120e35781602001602082028036833780820191505090505b50905030816000815181106120fb576120fa613399565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121c69190612a64565b816001815181106121da576121d9613399565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061224130601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111af565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122a5959493929190613486565b600060405180830381600087803b1580156122bf57600080fd5b505af11580156122d3573d6000803e3d6000fd5b50505050505b6000601360156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561235f573d6000803e3d6000fd5b5050565b6000808284612372919061315c565b9050838110156123b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ae9061352c565b60405180910390fd5b8091505092915050565b600061240383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f1e565b905092915050565b60008083118290612452576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244991906124fe565b60405180910390fd5b506000838561246191906132a7565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124a857808201518184015260208101905061248d565b60008484015250505050565b6000601f19601f8301169050919050565b60006124d08261246e565b6124da8185612479565b93506124ea81856020860161248a565b6124f3816124b4565b840191505092915050565b6000602082019050818103600083015261251881846124c5565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061255082612525565b9050919050565b61256081612545565b811461256b57600080fd5b50565b60008135905061257d81612557565b92915050565b6000819050919050565b61259681612583565b81146125a157600080fd5b50565b6000813590506125b38161258d565b92915050565b600080604083850312156125d0576125cf612520565b5b60006125de8582860161256e565b92505060206125ef858286016125a4565b9150509250929050565b60008115159050919050565b61260e816125f9565b82525050565b60006020820190506126296000830184612605565b92915050565b61263881612583565b82525050565b6000602082019050612653600083018461262f565b92915050565b6000819050919050565b600061267e61267961267484612525565b612659565b612525565b9050919050565b600061269082612663565b9050919050565b60006126a282612685565b9050919050565b6126b281612697565b82525050565b60006020820190506126cd60008301846126a9565b92915050565b6000806000606084860312156126ec576126eb612520565b5b60006126fa8682870161256e565b935050602061270b8682870161256e565b925050604061271c868287016125a4565b9150509250925092565b600060ff82169050919050565b61273c81612726565b82525050565b60006020820190506127576000830184612733565b92915050565b61276681612545565b82525050565b6000602082019050612781600083018461275d565b92915050565b60006020828403121561279d5761279c612520565b5b60006127ab8482850161256e565b91505092915050565b600080604083850312156127cb576127ca612520565b5b60006127d98582860161256e565b92505060206127ea8582860161256e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561287a57808604811115612856576128556127f4565b5b60018516156128655780820291505b808102905061287385612823565b945061283a565b94509492505050565b600082612893576001905061294f565b816128a1576000905061294f565b81600181146128b757600281146128c1576128f0565b600191505061294f565b60ff8411156128d3576128d26127f4565b5b8360020a9150848211156128ea576128e96127f4565b5b5061294f565b5060208310610133831016604e8410600b84101617156129255782820a9050838111156129205761291f6127f4565b5b61294f565b6129328484846001612830565b92509050818404811115612949576129486127f4565b5b81810290505b9392505050565b600061296182612583565b915061296c83612726565b92506129997fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612883565b905092915050565b60006129ac82612583565b91506129b783612583565b92508282026129c581612583565b915082820484148315176129dc576129db6127f4565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612a19602083612479565b9150612a24826129e3565b602082019050919050565b60006020820190508181036000830152612a4881612a0c565b9050919050565b600081519050612a5e81612557565b92915050565b600060208284031215612a7a57612a79612520565b5b6000612a8884828501612a4f565b91505092915050565b6000604082019050612aa6600083018561275d565b612ab3602083018461275d565b9392505050565b6000819050919050565b6000612adf612ada612ad584612aba565b612659565b612583565b9050919050565b612aef81612ac4565b82525050565b600060c082019050612b0a600083018961275d565b612b17602083018861262f565b612b246040830187612ae6565b612b316060830186612ae6565b612b3e608083018561275d565b612b4b60a083018461262f565b979650505050505050565b600081519050612b658161258d565b92915050565b600080600060608486031215612b8457612b83612520565b5b6000612b9286828701612b56565b9350506020612ba386828701612b56565b9250506040612bb486828701612b56565b9150509250925092565b6000604082019050612bd3600083018561275d565b612be0602083018461262f565b9392505050565b612bf0816125f9565b8114612bfb57600080fd5b50565b600081519050612c0d81612be7565b92915050565b600060208284031215612c2957612c28612520565b5b6000612c3784828501612bfe565b91505092915050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612c76601783612479565b9150612c8182612c40565b602082019050919050565b60006020820190508181036000830152612ca581612c69565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b6000612ce2601683612479565b9150612ced82612cac565b602082019050919050565b60006020820190508181036000830152612d1181612cd5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612d74602483612479565b9150612d7f82612d18565b604082019050919050565b60006020820190508181036000830152612da381612d67565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e06602283612479565b9150612e1182612daa565b604082019050919050565b60006020820190508181036000830152612e3581612df9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612e98602583612479565b9150612ea382612e3c565b604082019050919050565b60006020820190508181036000830152612ec781612e8b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612f2a602383612479565b9150612f3582612ece565b604082019050919050565b60006020820190508181036000830152612f5981612f1d565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612fbc602983612479565b9150612fc782612f60565b604082019050919050565b60006020820190508181036000830152612feb81612faf565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b6000613028601383612479565b915061303382612ff2565b602082019050919050565b600060208201905081810360008301526130578161301b565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f60008201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b60006130ba602483612479565b91506130c58261305e565b604082019050919050565b600060208201905081810360008301526130e9816130ad565b9050919050565b7f4578636565647320746865205f6d617854782e00000000000000000000000000600082015250565b6000613126601383612479565b9150613131826130f0565b602082019050919050565b6000602082019050818103600083015261315581613119565b9050919050565b600061316782612583565b915061317283612583565b925082820190508082111561318a576131896127f4565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006131c6601a83612479565b91506131d182613190565b602082019050919050565b600060208201905081810360008301526131f5816131b9565b9050919050565b600061320782612583565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613239576132386127f4565b5b600182019050919050565b600061324f82612583565b915061325a83612583565b9250828203905081811115613272576132716127f4565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006132b282612583565b91506132bd83612583565b9250826132cd576132cc613278565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613334602183612479565b915061333f826132d8565b604082019050919050565b6000602082019050818103600083015261336381613327565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6133fd81612545565b82525050565b600061340f83836133f4565b60208301905092915050565b6000602082019050919050565b6000613433826133c8565b61343d81856133d3565b9350613448836133e4565b8060005b838110156134795781516134608882613403565b975061346b8361341b565b92505060018101905061344c565b5085935050505092915050565b600060a08201905061349b600083018861262f565b6134a86020830187612ae6565b81810360408301526134ba8186613428565b90506134c9606083018561275d565b6134d6608083018461262f565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613516601b83612479565b9150613521826134e0565b602082019050919050565b6000602082019050818103600083015261354581613509565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e29120d2213bea6dc10dcfaa1e7ae9449a8b34ca109e1b0df157b18111a9a8a664736f6c6343000813003300000000000000000000000023fecd1bd6471456272d895d1c9ce8eb4ca85d00