6080604052600a600855600f600955670214e8348c4f0000600a556000600b60016101000a81548160ff0219169083151502179055506000600b60026101000a81548160ff0219169083151502179055503480156200005d57600080fd5b506040516200418638038062004186833981810160405281019062000083919062000794565b6040518060400160405280601081526020017f476f6c64656e205a656e20546f6b656e0000000000000000000000000000000081525060059081620000c9919062000a40565b506040518060400160405280600381526020017f475a5400000000000000000000000000000000000000000000000000000000008152506006908162000110919062000a40565b5069d3c21bcecceda10000006004819055506004546000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600454604051620001c9919062000b38565b60405180910390a333600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160026000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000403919062000794565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200047f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a5919062000794565b6040518363ffffffff1660e01b8152600401620004c492919062000b66565b6020604051808303816000875af1158015620004e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200050a919062000794565b506200055230737a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6200055960201b60201c565b5062000cd4565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620005cb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005c29062000c1a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200063d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006349062000cb2565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516200071d919062000b38565b60405180910390a3505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200075c826200072f565b9050919050565b6200076e816200074f565b81146200077a57600080fd5b50565b6000815190506200078e8162000763565b92915050565b600060208284031215620007ad57620007ac6200072a565b5b6000620007bd848285016200077d565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200084857607f821691505b6020821081036200085e576200085d62000800565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620008c87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000889565b620008d4868362000889565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620009216200091b6200091584620008ec565b620008f6565b620008ec565b9050919050565b6000819050919050565b6200093d8362000900565b620009556200094c8262000928565b84845462000896565b825550505050565b600090565b6200096c6200095d565b6200097981848462000932565b505050565b5b81811015620009a1576200099560008262000962565b6001810190506200097f565b5050565b601f821115620009f057620009ba8162000864565b620009c58462000879565b81016020851015620009d5578190505b620009ed620009e48562000879565b8301826200097e565b50505b505050565b600082821c905092915050565b600062000a1560001984600802620009f5565b1980831691505092915050565b600062000a30838362000a02565b9150826002028217905092915050565b62000a4b82620007c6565b67ffffffffffffffff81111562000a675762000a66620007d1565b5b62000a7382546200082f565b62000a80828285620009a5565b600060209050601f83116001811462000ab8576000841562000aa3578287015190505b62000aaf858262000a22565b86555062000b1f565b601f19841662000ac88662000864565b60005b8281101562000af25784890151825560018201915060208501945060208101905062000acb565b8683101562000b12578489015162000b0e601f89168262000a02565b8355505b6001600288020188555050505b505050505050565b62000b3281620008ec565b82525050565b600060208201905062000b4f600083018462000b27565b92915050565b62000b60816200074f565b82525050565b600060408201905062000b7d600083018562000b55565b62000b8c602083018462000b55565b9392505050565b600082825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600062000c0260248362000b93565b915062000c0f8262000ba4565b604082019050919050565b6000602082019050818103600083015262000c358162000bf3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600062000c9a60228362000b93565b915062000ca78262000c3c565b604082019050919050565b6000602082019050818103600083015262000ccd8162000c8b565b9050919050565b6134a28062000ce46000396000f3fe6080604052600436106101dc5760003560e01c80636281a8c011610102578063a9059cbb11610095578063df31058011610064578063df3105801461065d578063e09b481314610674578063f3c533f61461069d578063f586c6d9146106da576101e3565b8063a9059cbb1461058f578063abd545bf146105cc578063b364574e146105f7578063dd62ed3e14610620576101e3565b80638da5cb5b116100d15780638da5cb5b146104d357806395d89b41146104fe5780639eec1a4514610529578063a457c2d714610552576101e3565b80636281a8c0146104515780636b130f9a1461046857806370a082311461047f578063715018a6146104bc576101e3565b8063220f66961161017a578063395093511161014957806339509351146103bb5780634ada218b146103f85780635e685f4414610423578063616eb6381461043a576101e3565b8063220f66961461031157806323b872dd1461033c5780632fc6028114610379578063313ce56714610390576101e3565b8063162b51fc116101b6578063162b51fc1461027b5780631693e8d4146102a657806318160ddd146102bd578063210ab5d6146102e8576101e3565b806306fdde03146101e8578063090666d614610213578063095ea7b31461023e576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610705565b60405161020a91906126ef565b60405180910390f35b34801561021f57600080fd5b50610228610797565b604051610235919061272c565b60405180910390f35b34801561024a57600080fd5b50610265600480360381019061026091906127ef565b6107aa565b604051610272919061272c565b60405180910390f35b34801561028757600080fd5b506102906107cd565b60405161029d919061283e565b60405180910390f35b3480156102b257600080fd5b506102bb6107d3565b005b3480156102c957600080fd5b506102d2610880565b6040516102df919061283e565b60405180910390f35b3480156102f457600080fd5b5061030f600480360381019061030a9190612859565b61088a565b005b34801561031d57600080fd5b50610326610975565b604051610333919061272c565b60405180910390f35b34801561034857600080fd5b50610363600480360381019061035e9190612886565b610988565b604051610370919061272c565b60405180910390f35b34801561038557600080fd5b5061038e6109b7565b005b34801561039c57600080fd5b506103a5610a73565b6040516103b291906128f5565b60405180910390f35b3480156103c757600080fd5b506103e260048036038101906103dd91906127ef565b610a7c565b6040516103ef919061272c565b60405180910390f35b34801561040457600080fd5b5061040d610ab3565b60405161041a919061272c565b60405180910390f35b34801561042f57600080fd5b50610438610ac6565b005b34801561044657600080fd5b5061044f610b68565b005b34801561045d57600080fd5b50610466610c41565b005b34801561047457600080fd5b5061047d610ce3565b005b34801561048b57600080fd5b506104a660048036038101906104a19190612859565b610d85565b6040516104b3919061283e565b60405180910390f35b3480156104c857600080fd5b506104d1610dcd565b005b3480156104df57600080fd5b506104e8610e69565b6040516104f5919061291f565b60405180910390f35b34801561050a57600080fd5b50610513610e8f565b60405161052091906126ef565b60405180910390f35b34801561053557600080fd5b50610550600480360381019061054b9190612859565b610f21565b005b34801561055e57600080fd5b50610579600480360381019061057491906127ef565b6110ac565b604051610586919061272c565b60405180910390f35b34801561059b57600080fd5b506105b660048036038101906105b191906127ef565b611123565b6040516105c3919061272c565b60405180910390f35b3480156105d857600080fd5b506105e1611146565b6040516105ee919061283e565b60405180910390f35b34801561060357600080fd5b5061061e6004803603810190610619919061293a565b61114c565b005b34801561062c57600080fd5b5061064760048036038101906106429190612967565b6111e6565b604051610654919061283e565b60405180910390f35b34801561066957600080fd5b5061067261126d565b005b34801561068057600080fd5b5061069b60048036038101906106969190612859565b61130f565b005b3480156106a957600080fd5b506106c460048036038101906106bf919061293a565b6113fa565b6040516106d1919061283e565b60405180910390f35b3480156106e657600080fd5b506106ef611634565b6040516106fc919061291f565b60405180910390f35b606060058054610714906129d6565b80601f0160208091040260200160405190810160405280929190818152602001828054610740906129d6565b801561078d5780601f106107625761010080835404028352916020019161078d565b820191906000526020600020905b81548152906001019060200180831161077057829003601f168201915b5050505050905090565b600b60019054906101000a900460ff1681565b6000806107b56117c0565b90506107c28185856117c8565b600191505092915050565b60085481565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085a90612a53565b60405180910390fd5b6001600b60026101000a81548160ff021916908315150217905550565b6000600454905090565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461091a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091190612a53565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600b60009054906101000a900460ff1681565b6000806109936117c0565b90506109a0858285611991565b6109ab858585611a1d565b60019150509392505050565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3e90612a53565b60405180910390fd5b600b60019054906101000a900460ff1615600b60016101000a81548160ff021916908315150217905550565b60006012905090565b600080610a876117c0565b9050610aa8818585610a9985896111e6565b610aa39190612aa2565b6117c8565b600191505092915050565b600b60029054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4d90612a53565b60405180910390fd5b600a600881905550600a600981905550565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bef90612a53565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610c3e573d6000803e3d6000fd5b50565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc890612a53565b60405180910390fd5b600a600881905550600f600981905550565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6a90612a53565b60405180910390fd5b60006008819055506000600981905550565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5490612a53565b60405180910390fd5b610e6760006122c8565b565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060068054610e9e906129d6565b80601f0160208091040260200160405190810160405280929190818152602001828054610eca906129d6565b8015610f175780601f10610eec57610100808354040283529160200191610f17565b820191906000526020600020905b815481529060010190602001808311610efa57829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa890612a53565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611007919061291f565b602060405180830381865afa158015611024573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110489190612aeb565b6040518363ffffffff1660e01b8152600401611065929190612b18565b6020604051808303816000875af1158015611084573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a89190612b6d565b5050565b6000806110b76117c0565b905060006110c582866111e6565b90508381101561110a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110190612c0c565b60405180910390fd5b61111782868684036117c8565b60019250505092915050565b60008061112e6117c0565b905061113b818585611a1d565b600191505092915050565b60095481565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d390612a53565b60405180910390fd5b80600a8190555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f490612a53565b60405180910390fd5b60036008819055506003600981905550565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461139f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139690612a53565b60405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006060600267ffffffffffffffff81111561141957611418612c2c565b5b6040519080825280602002602001820160405280156114475781602001602082028036833780820191505090505b509050308160008151811061145f5761145e612c5b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061151c9190612c9f565b816001815181106115305761152f612c5b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663d06ca61f85846040518363ffffffff1660e01b81526004016115bb929190612d8a565b600060405180830381865afa1580156115d8573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906116019190612ed3565b905080600183516116129190612f1c565b8151811061162357611622612c5b565b5b602002602001015192505050919050565b600080737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611696573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ba9190612c9f565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611735573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117599190612c9f565b6040518363ffffffff1660e01b8152600401611776929190612f50565b602060405180830381865afa158015611793573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b79190612c9f565b90508091505090565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182e90612feb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189d9061307d565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611984919061283e565b60405180910390a3505050565b600061199d84846111e6565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611a175781811015611a09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a00906130e9565b60405180910390fd5b611a1684848484036117c8565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a839061317b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611afb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af29061320d565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611b81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b789061329f565b60405180910390fd5b600b60019054906101000a900460ff1615611cfc576000611bdf6000803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113fa565b9050600a5481118015611bff5750600b60009054906101000a900460ff16155b8015611c3d5750611c0e611634565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15611c81576001600b60006101000a81548160ff021916908315150217905550611c6561238e565b6000600b60006101000a81548160ff0219169083151502179055505b6001471115611cfa576000479050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611cf7573d6000803e3d6000fd5b50505b505b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611d9d5750600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611db45750600b60009054906101000a900460ff165b15611ec6578181611dc59190612f1c565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e559190612aa2565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611eb9919061283e565b60405180910390a36122c2565b611ece611634565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480611f395750611f0a611634565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b156121b857600b60029054906101000a900460ff16611f8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f849061330b565b60405180910390fd5b6000611f97611634565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611fcf5760095490505b611fd7611634565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361200f5760085490505b600060648260646120209190612f1c565b8561202b919061332b565b612035919061339c565b905083836120439190612f1c565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546120d39190612aa2565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612137919061283e565b60405180910390a360006064838661214f919061332b565b612159919061339c565b9050806000803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121a99190612aa2565b925050819055505050506122c1565b81816121c49190612f1c565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122549190612aa2565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516122b8919061283e565b60405180910390a35b5b50505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b3073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3737a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016123fd929190612b18565b6020604051808303816000875af115801561241c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124409190612b6d565b50600061244c30610d85565b90506000600267ffffffffffffffff81111561246b5761246a612c2c565b5b6040519080825280602002602001820160405280156124995781602001602082028036833780820191505090505b50905030816000815181106124b1576124b0612c5b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561254a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061256e9190612c9f565b8160018151811061258257612581612c5b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff166318cbafe58360008430426040518663ffffffff1660e01b8152600401612612959493929190613412565b6000604051808303816000875af1158015612631573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061265a9190612ed3565b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561269957808201518184015260208101905061267e565b60008484015250505050565b6000601f19601f8301169050919050565b60006126c18261265f565b6126cb818561266a565b93506126db81856020860161267b565b6126e4816126a5565b840191505092915050565b6000602082019050818103600083015261270981846126b6565b905092915050565b60008115159050919050565b61272681612711565b82525050565b6000602082019050612741600083018461271d565b92915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006127868261275b565b9050919050565b6127968161277b565b81146127a157600080fd5b50565b6000813590506127b38161278d565b92915050565b6000819050919050565b6127cc816127b9565b81146127d757600080fd5b50565b6000813590506127e9816127c3565b92915050565b6000806040838503121561280657612805612751565b5b6000612814858286016127a4565b9250506020612825858286016127da565b9150509250929050565b612838816127b9565b82525050565b6000602082019050612853600083018461282f565b92915050565b60006020828403121561286f5761286e612751565b5b600061287d848285016127a4565b91505092915050565b60008060006060848603121561289f5761289e612751565b5b60006128ad868287016127a4565b93505060206128be868287016127a4565b92505060406128cf868287016127da565b9150509250925092565b600060ff82169050919050565b6128ef816128d9565b82525050565b600060208201905061290a60008301846128e6565b92915050565b6129198161277b565b82525050565b60006020820190506129346000830184612910565b92915050565b6000602082840312156129505761294f612751565b5b600061295e848285016127da565b91505092915050565b6000806040838503121561297e5761297d612751565b5b600061298c858286016127a4565b925050602061299d858286016127a4565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806129ee57607f821691505b602082108103612a0157612a006129a7565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612a3d60208361266a565b9150612a4882612a07565b602082019050919050565b60006020820190508181036000830152612a6c81612a30565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612aad826127b9565b9150612ab8836127b9565b9250828201905080821115612ad057612acf612a73565b5b92915050565b600081519050612ae5816127c3565b92915050565b600060208284031215612b0157612b00612751565b5b6000612b0f84828501612ad6565b91505092915050565b6000604082019050612b2d6000830185612910565b612b3a602083018461282f565b9392505050565b612b4a81612711565b8114612b5557600080fd5b50565b600081519050612b6781612b41565b92915050565b600060208284031215612b8357612b82612751565b5b6000612b9184828501612b58565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612bf660258361266a565b9150612c0182612b9a565b604082019050919050565b60006020820190508181036000830152612c2581612be9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612c998161278d565b92915050565b600060208284031215612cb557612cb4612751565b5b6000612cc384828501612c8a565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612d018161277b565b82525050565b6000612d138383612cf8565b60208301905092915050565b6000602082019050919050565b6000612d3782612ccc565b612d418185612cd7565b9350612d4c83612ce8565b8060005b83811015612d7d578151612d648882612d07565b9750612d6f83612d1f565b925050600181019050612d50565b5085935050505092915050565b6000604082019050612d9f600083018561282f565b8181036020830152612db18184612d2c565b90509392505050565b600080fd5b612dc8826126a5565b810181811067ffffffffffffffff82111715612de757612de6612c2c565b5b80604052505050565b6000612dfa612747565b9050612e068282612dbf565b919050565b600067ffffffffffffffff821115612e2657612e25612c2c565b5b602082029050602081019050919050565b600080fd5b6000612e4f612e4a84612e0b565b612df0565b90508083825260208201905060208402830185811115612e7257612e71612e37565b5b835b81811015612e9b5780612e878882612ad6565b845260208401935050602081019050612e74565b5050509392505050565b600082601f830112612eba57612eb9612dba565b5b8151612eca848260208601612e3c565b91505092915050565b600060208284031215612ee957612ee8612751565b5b600082015167ffffffffffffffff811115612f0757612f06612756565b5b612f1384828501612ea5565b91505092915050565b6000612f27826127b9565b9150612f32836127b9565b9250828203905081811115612f4a57612f49612a73565b5b92915050565b6000604082019050612f656000830185612910565b612f726020830184612910565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612fd560248361266a565b9150612fe082612f79565b604082019050919050565b6000602082019050818103600083015261300481612fc8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061306760228361266a565b91506130728261300b565b604082019050919050565b600060208201905081810360008301526130968161305a565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006130d3601d8361266a565b91506130de8261309d565b602082019050919050565b60006020820190508181036000830152613102816130c6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061316560258361266a565b915061317082613109565b604082019050919050565b6000602082019050818103600083015261319481613158565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006131f760238361266a565b91506132028261319b565b604082019050919050565b60006020820190508181036000830152613226816131ea565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061328960268361266a565b91506132948261322d565b604082019050919050565b600060208201905081810360008301526132b88161327c565b9050919050565b7f74726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b60006132f560138361266a565b9150613300826132bf565b602082019050919050565b60006020820190508181036000830152613324816132e8565b9050919050565b6000613336826127b9565b9150613341836127b9565b925082820261334f816127b9565b9150828204841483151761336657613365612a73565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006133a7826127b9565b91506133b2836127b9565b9250826133c2576133c161336d565b5b828204905092915050565b6000819050919050565b6000819050919050565b60006133fc6133f76133f2846133cd565b6133d7565b6127b9565b9050919050565b61340c816133e1565b82525050565b600060a082019050613427600083018861282f565b6134346020830187613403565b81810360408301526134468186612d2c565b90506134556060830185612910565b613462608083018461282f565b969550505050505056fea2646970667358221220899ed03cfed829a61afaf57bfe62266a9aaa14856b7d1584de3b4e4ecbae401a64736f6c63430008120033000000000000000000000000221604ba51a66e750906d0a9fb0d67853d123f6c