60806040526000600660006101000a81548160ff0219169083151502179055506019600755601960085560016009556001600a556045600b556045600c556014600d556000600e55606460026009600a6200005b919062000875565b63190f1b446200006c9190620008c6565b620000789190620008c6565b62000084919062000940565b600f55606460026009600a6200009b919062000875565b63190f1b44620000ac9190620008c6565b620000b89190620008c6565b620000c4919062000940565b6010556103e860086009600a620000dc919062000875565b63190f1b44620000ed9190620008c6565b620000f99190620008c6565b62000105919062000940565b6011556103e860086009600a6200011d919062000875565b63190f1b446200012e9190620008c6565b6200013a9190620008c6565b62000146919062000940565b6012556000601460156101000a81548160ff0219169083151502179055506000601460166101000a81548160ff0219169083151502179055503480156200018c57600080fd5b5060006200019f620005ef60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506200024d620005ef60201b60201c565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006009600a6200029f919062000875565b63190f1b44620002b09190620008c6565b9050620002ec816009600a620002c7919062000875565b63190f1b44620002d89190620008c6565b620005f760201b6200155f1790919060201c565b6001600062000300620005ef60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620003986200064960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004cb620005ef60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600160006200052e620005ef60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460405162000578919062000989565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620005e0919062000989565b60405180910390a35062000a9f565b600033905090565b60006200064183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506200067260201b60201c565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000838311158290620006bd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006b4919062000a40565b60405180910390fd5b5060008385620006ce919062000a64565b9050809150509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200076957808604811115620007415762000740620006db565b5b6001851615620007515780820291505b808102905062000761856200070a565b945062000721565b94509492505050565b60008262000784576001905062000857565b8162000794576000905062000857565b8160018114620007ad5760028114620007b857620007ee565b600191505062000857565b60ff841115620007cd57620007cc620006db565b5b8360020a915084821115620007e757620007e6620006db565b5b5062000857565b5060208310610133831016604e8410600b8410161715620008285782820a905083811115620008225762000821620006db565b5b62000857565b62000837848484600162000717565b92509050818404811115620008515762000850620006db565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000882826200085e565b91506200088f8362000868565b9250620008be7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000772565b905092915050565b6000620008d3826200085e565b9150620008e0836200085e565b9250828202620008f0816200085e565b915082820484148315176200090a5762000909620006db565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200094d826200085e565b91506200095a836200085e565b9250826200096d576200096c62000911565b5b828204905092915050565b62000983816200085e565b82525050565b6000602082019050620009a0600083018462000978565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015620009e2578082015181840152602081019050620009c5565b60008484015250505050565b6000601f19601f8301169050919050565b600062000a0c82620009a6565b62000a188185620009b1565b935062000a2a818560208601620009c2565b62000a3581620009ee565b840191505092915050565b6000602082019050818103600083015262000a5c8184620009ff565b905092915050565b600062000a71826200085e565b915062000a7e836200085e565b925082820390508181111562000a995762000a98620006db565b5b92915050565b6138958062000aaf6000396000f3fe6080604052600436106101855760003560e01c8063751039fc116100d1578063bf474bed1161008a578063d34628cc11610064578063d34628cc1461054b578063dc40c6c614610574578063dd62ed3e1461059d578063ea1644d5146105da5761018c565b8063bf474bed146104ca578063c36956a0146104f5578063c876d0b9146105205761018c565b8063751039fc146103ca5780637d1db4a5146103e15780638da5cb5b1461040c5780638f9a55c01461043757806395d89b4114610462578063a9059cbb1461048d5761018c565b80633040d9a01161013e5780633bbac579116101185780633bbac5791461032257806351bc3c851461035f57806370a0823114610376578063715018a6146103b35761018c565b80633040d9a0146102b7578063313ce567146102ce57806331c2d847146102f95761018c565b806306fdde0314610191578063095ea7b3146101bc5780630c193045146101f95780630faee56f1461022457806318160ddd1461024f57806323b872dd1461027a5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a6610603565b6040516101b39190612753565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de919061281d565b610640565b6040516101f09190612878565b60405180910390f35b34801561020557600080fd5b5061020e61065e565b60405161021b91906128a2565b60405180910390f35b34801561023057600080fd5b50610239610664565b60405161024691906128a2565b60405180910390f35b34801561025b57600080fd5b5061026461066a565b60405161027191906128a2565b60405180910390f35b34801561028657600080fd5b506102a1600480360381019061029c91906128bd565b61068e565b6040516102ae9190612878565b60405180910390f35b3480156102c357600080fd5b506102cc610767565b005b3480156102da57600080fd5b506102e3610c9c565b6040516102f0919061292c565b60405180910390f35b34801561030557600080fd5b50610320600480360381019061031b9190612a8f565b610ca5565b005b34801561032e57600080fd5b5061034960048036038101906103449190612ad8565b610dcf565b6040516103569190612878565b60405180910390f35b34801561036b57600080fd5b50610374610e25565b005b34801561038257600080fd5b5061039d60048036038101906103989190612ad8565b610ec2565b6040516103aa91906128a2565b60405180910390f35b3480156103bf57600080fd5b506103c8610f0b565b005b3480156103d657600080fd5b506103df61105e565b005b3480156103ed57600080fd5b506103f66111b9565b60405161040391906128a2565b60405180910390f35b34801561041857600080fd5b506104216111bf565b60405161042e9190612b14565b60405180910390f35b34801561044357600080fd5b5061044c6111e8565b60405161045991906128a2565b60405180910390f35b34801561046e57600080fd5b506104776111ee565b6040516104849190612753565b60405180910390f35b34801561049957600080fd5b506104b460048036038101906104af919061281d565b61122b565b6040516104c19190612878565b60405180910390f35b3480156104d657600080fd5b506104df611249565b6040516104ec91906128a2565b60405180910390f35b34801561050157600080fd5b5061050a61124f565b60405161051791906128a2565b60405180910390f35b34801561052c57600080fd5b50610535611255565b6040516105429190612878565b60405180910390f35b34801561055757600080fd5b50610572600480360381019061056d9190612a8f565b611268565b005b34801561058057600080fd5b5061059b60048036038101906105969190612b2f565b611392565b005b3480156105a957600080fd5b506105c460048036038101906105bf9190612b6f565b611439565b6040516105d191906128a2565b60405180910390f35b3480156105e657600080fd5b5061060160048036038101906105fc9190612baf565b6114c0565b005b60606040518060400160405280601d81526020017f5a657461204172626974726167652050726f746f636f6c20546f6b656e000000815250905090565b600061065461064d6115a9565b84846115b1565b6001905092915050565b600b5481565b60125481565b60006009600a61067a9190612d3e565b63190f1b446106899190612d89565b905090565b600061069b84848461177a565b61075c846106a76115a9565b6107578560405180606001604052806028815260200161383860289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061070d6115a9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121bf9092919063ffffffff16565b6115b1565b600190509392505050565b61076f6115a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f390612e17565b60405180910390fd5b60148054906101000a900460ff161561084a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084190612e83565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506108e830601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6108d49190612d3e565b63190f1b446108e39190612d89565b6115b1565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610955573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109799190612eb8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a269190612eb8565b6040518363ffffffff1660e01b8152600401610a43929190612ee5565b6020604051808303816000875af1158015610a62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a869190612eb8565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610b0f30610ec2565b600080610b1a6111bf565b426040518863ffffffff1660e01b8152600401610b3c96959493929190612f53565b60606040518083038185885af1158015610b5a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b7f9190612fc9565b505050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610c2192919061301c565b6020604051808303816000875af1158015610c40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c649190613071565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b60006009905090565b610cad6115a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3190612e17565b60405180910390fd5b60005b8151811015610dcb57600060046000848481518110610d5f57610d5e61309e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610dc3906130cd565b915050610d3d565b5050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e666115a9565b73ffffffffffffffffffffffffffffffffffffffff1614610e8657600080fd5b6000610e9130610ec2565b90506000811115610ea657610ea581612223565b5b60004790506000811115610ebe57610ebd816124b9565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f136115a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9790612e17565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6110666115a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ea90612e17565b60405180910390fd5b6009600a6111019190612d3e565b63190f1b446111109190612d89565b600f819055506009600a6111249190612d3e565b63190f1b446111339190612d89565b6010819055506000600660006101000a81548160ff021916908315150217905550600a600c81905550600a600b819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6111939190612d3e565b63190f1b446111a29190612d89565b6040516111af91906128a2565b60405180910390a1565b600f5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600481526020017f5a41505400000000000000000000000000000000000000000000000000000000815250905090565b600061123f6112386115a9565b848461177a565b6001905092915050565b60115481565b600c5481565b600660009054906101000a900460ff1681565b6112706115a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f490612e17565b60405180910390fd5b60005b815181101561138e576001600460008484815181106113225761132161309e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611386906130cd565b915050611300565b5050565b61139a6115a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611427576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141e90612e17565b60405180910390fd5b81600781905550806008819055505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114c86115a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154c90612e17565b60405180910390fd5b8060108190555050565b60006115a183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506121bf565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611620576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161790613187565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361168f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168690613219565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161176d91906128a2565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e0906132ab565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611858576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184f9061333d565b60405180910390fd5b6000811161189b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611892906133cf565b60405180910390fd5b60006118a56111bf565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561191357506118e36111bf565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f0257600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119bc5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6119c557600080fd5b600660009054906101000a900460ff1615611b5257601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a865750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b515743600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0390613461565b60405180910390fd5b43600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611bfd5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c535750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d0e57600f54821115611c9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c94906134cd565b60405180910390fd5b60105482611caa85610ec2565b611cb491906134ed565b1115611cf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cec9061356d565b60405180910390fd5b600e6000815480929190611d08906130cd565b91905055505b611d4a6064611d3c600b54600e5411611d2957600754611d2d565b6009545b8561252590919063ffffffff16565b61259f90919063ffffffff16565b9050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611dd557503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611e1957611e166064611e08600c54600e5411611df557600854611df9565b600a545b8561252590919063ffffffff16565b61259f90919063ffffffff16565b90505b6000611e2430610ec2565b9050601460159054906101000a900460ff16158015611e905750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611ea85750601460169054906101000a900460ff165b8015611eb5575060115481115b8015611ec45750600d54600e54115b15611f0057611ee6611ee184611edc846012546125e9565b6125e9565b612223565b60004790506000811115611efe57611efd476124b9565b5b505b505b600081111561200657611f5d81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461260290919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ffd91906128a2565b60405180910390a35b61205882600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461155f90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120ff6120b1828461155f90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461260290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6121a4848661155f90919063ffffffff16565b6040516121b191906128a2565b60405180910390a350505050565b6000838311158290612207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121fe9190612753565b60405180910390fd5b5060008385612216919061358d565b9050809150509392505050565b6001601460156101000a81548160ff021916908315150217905550600081031561249b5760148054906101000a900460ff161561249b576000600267ffffffffffffffff8111156122775761227661294c565b5b6040519080825280602002602001820160405280156122a55781602001602082028036833780820191505090505b50905030816000815181106122bd576122bc61309e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612364573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123889190612eb8565b8160018151811061239c5761239b61309e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061240330601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115b1565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161246795949392919061367f565b600060405180830381600087803b15801561248157600080fd5b505af1158015612495573d6000803e3d6000fd5b50505050505b6000601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612521573d6000803e3d6000fd5b5050565b60008083036125375760009050612599565b600082846125459190612d89565b90508284826125549190613708565b14612594576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258b906137ab565b60405180910390fd5b809150505b92915050565b60006125e183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612660565b905092915050565b60008183116125f857826125fa565b815b905092915050565b600080828461261191906134ed565b905083811015612656576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264d90613817565b60405180910390fd5b8091505092915050565b600080831182906126a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269e9190612753565b60405180910390fd5b50600083856126b69190613708565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156126fd5780820151818401526020810190506126e2565b60008484015250505050565b6000601f19601f8301169050919050565b6000612725826126c3565b61272f81856126ce565b935061273f8185602086016126df565b61274881612709565b840191505092915050565b6000602082019050818103600083015261276d818461271a565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006127b482612789565b9050919050565b6127c4816127a9565b81146127cf57600080fd5b50565b6000813590506127e1816127bb565b92915050565b6000819050919050565b6127fa816127e7565b811461280557600080fd5b50565b600081359050612817816127f1565b92915050565b600080604083850312156128345761283361277f565b5b6000612842858286016127d2565b925050602061285385828601612808565b9150509250929050565b60008115159050919050565b6128728161285d565b82525050565b600060208201905061288d6000830184612869565b92915050565b61289c816127e7565b82525050565b60006020820190506128b76000830184612893565b92915050565b6000806000606084860312156128d6576128d561277f565b5b60006128e4868287016127d2565b93505060206128f5868287016127d2565b925050604061290686828701612808565b9150509250925092565b600060ff82169050919050565b61292681612910565b82525050565b6000602082019050612941600083018461291d565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61298482612709565b810181811067ffffffffffffffff821117156129a3576129a261294c565b5b80604052505050565b60006129b6612775565b90506129c2828261297b565b919050565b600067ffffffffffffffff8211156129e2576129e161294c565b5b602082029050602081019050919050565b600080fd5b6000612a0b612a06846129c7565b6129ac565b90508083825260208201905060208402830185811115612a2e57612a2d6129f3565b5b835b81811015612a575780612a4388826127d2565b845260208401935050602081019050612a30565b5050509392505050565b600082601f830112612a7657612a75612947565b5b8135612a868482602086016129f8565b91505092915050565b600060208284031215612aa557612aa461277f565b5b600082013567ffffffffffffffff811115612ac357612ac2612784565b5b612acf84828501612a61565b91505092915050565b600060208284031215612aee57612aed61277f565b5b6000612afc848285016127d2565b91505092915050565b612b0e816127a9565b82525050565b6000602082019050612b296000830184612b05565b92915050565b60008060408385031215612b4657612b4561277f565b5b6000612b5485828601612808565b9250506020612b6585828601612808565b9150509250929050565b60008060408385031215612b8657612b8561277f565b5b6000612b94858286016127d2565b9250506020612ba5858286016127d2565b9150509250929050565b600060208284031215612bc557612bc461277f565b5b6000612bd384828501612808565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612c6257808604811115612c3e57612c3d612bdc565b5b6001851615612c4d5780820291505b8081029050612c5b85612c0b565b9450612c22565b94509492505050565b600082612c7b5760019050612d37565b81612c895760009050612d37565b8160018114612c9f5760028114612ca957612cd8565b6001915050612d37565b60ff841115612cbb57612cba612bdc565b5b8360020a915084821115612cd257612cd1612bdc565b5b50612d37565b5060208310610133831016604e8410600b8410161715612d0d5782820a905083811115612d0857612d07612bdc565b5b612d37565b612d1a8484846001612c18565b92509050818404811115612d3157612d30612bdc565b5b81810290505b9392505050565b6000612d49826127e7565b9150612d5483612910565b9250612d817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612c6b565b905092915050565b6000612d94826127e7565b9150612d9f836127e7565b9250828202612dad816127e7565b91508282048414831517612dc457612dc3612bdc565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612e016020836126ce565b9150612e0c82612dcb565b602082019050919050565b60006020820190508181036000830152612e3081612df4565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612e6d6017836126ce565b9150612e7882612e37565b602082019050919050565b60006020820190508181036000830152612e9c81612e60565b9050919050565b600081519050612eb2816127bb565b92915050565b600060208284031215612ece57612ecd61277f565b5b6000612edc84828501612ea3565b91505092915050565b6000604082019050612efa6000830185612b05565b612f076020830184612b05565b9392505050565b6000819050919050565b6000819050919050565b6000612f3d612f38612f3384612f0e565b612f18565b6127e7565b9050919050565b612f4d81612f22565b82525050565b600060c082019050612f686000830189612b05565b612f756020830188612893565b612f826040830187612f44565b612f8f6060830186612f44565b612f9c6080830185612b05565b612fa960a0830184612893565b979650505050505050565b600081519050612fc3816127f1565b92915050565b600080600060608486031215612fe257612fe161277f565b5b6000612ff086828701612fb4565b935050602061300186828701612fb4565b925050604061301286828701612fb4565b9150509250925092565b60006040820190506130316000830185612b05565b61303e6020830184612893565b9392505050565b61304e8161285d565b811461305957600080fd5b50565b60008151905061306b81613045565b92915050565b6000602082840312156130875761308661277f565b5b60006130958482850161305c565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006130d8826127e7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361310a57613109612bdc565b5b600182019050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006131716024836126ce565b915061317c82613115565b604082019050919050565b600060208201905081810360008301526131a081613164565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006132036022836126ce565b915061320e826131a7565b604082019050919050565b60006020820190508181036000830152613232816131f6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006132956025836126ce565b91506132a082613239565b604082019050919050565b600060208201905081810360008301526132c481613288565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006133276023836126ce565b9150613332826132cb565b604082019050919050565b600060208201905081810360008301526133568161331a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006133b96029836126ce565b91506133c48261335d565b604082019050919050565b600060208201905081810360008301526133e8816133ac565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f60008201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b600061344b6024836126ce565b9150613456826133ef565b604082019050919050565b6000602082019050818103600083015261347a8161343e565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006134b76019836126ce565b91506134c282613481565b602082019050919050565b600060208201905081810360008301526134e6816134aa565b9050919050565b60006134f8826127e7565b9150613503836127e7565b925082820190508082111561351b5761351a612bdc565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613557601a836126ce565b915061356282613521565b602082019050919050565b600060208201905081810360008301526135868161354a565b9050919050565b6000613598826127e7565b91506135a3836127e7565b92508282039050818111156135bb576135ba612bdc565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6135f6816127a9565b82525050565b600061360883836135ed565b60208301905092915050565b6000602082019050919050565b600061362c826135c1565b61363681856135cc565b9350613641836135dd565b8060005b8381101561367257815161365988826135fc565b975061366483613614565b925050600181019050613645565b5085935050505092915050565b600060a0820190506136946000830188612893565b6136a16020830187612f44565b81810360408301526136b38186613621565b90506136c26060830185612b05565b6136cf6080830184612893565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613713826127e7565b915061371e836127e7565b92508261372e5761372d6136d9565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006137956021836126ce565b91506137a082613739565b604082019050919050565b600060208201905081810360008301526137c481613788565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613801601b836126ce565b915061380c826137cb565b602082019050919050565b60006020820190508181036000830152613830816137f4565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201f5da359e247ee2a9772f74133bf53faaa0ff801032c9208e766e64428ba992664736f6c63430008120033