60a060405261dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600681526020017f4b464c6f636b0000000000000000000000000000000000000000000000000000815250600790805190602001906200009492919062000c1f565b506040518060400160405280600581526020017f464c4f434b00000000000000000000000000000000000000000000000000000081525060089080519060200190620000e292919062000c1f565b5073be98916ce01dcc66d0d3d2ab31e5c0c700432b01600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073be98916ce01dcc66d0d3d2ab31e5c0c700432b01600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103e86014556001601660006101000a81548160ff0219169083151502179055506007601755600060185560de6019556001601a60006101000a81548160ff021916908315150217905550600b6021556305f5e1006022556572125f3252e5602355600b60001b60001c6026553480156200020757600080fd5b50600780546200021790620010ef565b80601f01602080910402602001604051908101604052809291908181526020018280546200024590620010ef565b8015620002965780601f106200026a5761010080835404028352916020019162000296565b820191906000526020600020905b8154815290600101906020018083116200027857829003601f168201915b505050505060088054620002aa90620010ef565b80601f0160208091040260200160405190810160405280929190818152602001828054620002d890620010ef565b8015620003295780601f10620002fd5761010080835404028352916020019162000329565b820191906000526020600020905b8154815290600101906020018083116200030b57829003601f168201915b5050505050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682600390805190602001906200036992919062000c1f565b5081600490805190602001906200038292919062000c1f565b506009600560006101000a81548160ff021916908360ff160217905550600560009054906101000a900460ff16600a620003bd919062000ec6565b64e8d4a51000620003cf919062001003565b6006819055506006546000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040516200047c919062000e38565b60405180910390a35050506000734752ba5dbc23f44d87826276bf6fd6b1c372ad2490508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620004e757600080fd5b505afa158015620004fc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000522919062000cfd565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200058557600080fd5b505afa1580156200059a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005c0919062000cfd565b6040518363ffffffff1660e01b8152600401620005df92919062000e0b565b602060405180830381600087803b158015620005fa57600080fd5b505af11580156200060f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000635919062000cfd565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fabbbab00000000000000dead10ed43c718714eb63d5aa57b78b54704e256024e601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fabbbab00000000000000dead13f4ea83d0bd40e75c8222255bc855a974568dd4602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250506002600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051602001620007a5919062000dd5565b604051602081830303815290604052604051620007c3919062000df2565b602060405180830381855afa158015620007e1573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019062000806919062000d2f565b601b81905550734200000000000000000000000000000000000006600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620008d462000c1560201b60201c565b600981905550600160256000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160256000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050620011fe565b6000600654905090565b82805462000c2d90620010ef565b90600052602060002090601f01602090048101928262000c51576000855562000c9d565b82601f1062000c6c57805160ff191683800117855562000c9d565b8280016001018555821562000c9d579182015b8281111562000c9c57825182559160200191906001019062000c7f565b5b50905062000cac919062000cb0565b5090565b5b8082111562000ccb57600081600090555060010162000cb1565b5090565b60008151905062000ce081620011ca565b92915050565b60008151905062000cf781620011e4565b92915050565b60006020828403121562000d165762000d15620011ab565b5b600062000d268482850162000ccf565b91505092915050565b60006020828403121562000d485762000d47620011ab565b5b600062000d588482850162000ce6565b91505092915050565b62000d6c8162001064565b82525050565b62000d8762000d818262001064565b62001125565b82525050565b600062000d9a8262000e55565b62000da6818562000e60565b935062000db8818560208601620010b9565b80840191505092915050565b62000dcf81620010a2565b82525050565b600062000de3828462000d72565b60148201915081905092915050565b600062000e00828462000d8d565b915081905092915050565b600060408201905062000e22600083018562000d61565b62000e31602083018462000d61565b9392505050565b600060208201905062000e4f600083018462000dc4565b92915050565b600081519050919050565b600081905092915050565b6000808291508390505b600185111562000ebd5780860481111562000e955762000e946200114d565b5b600185161562000ea55780820291505b808102905062000eb585620011bd565b945062000e75565b94509492505050565b600062000ed382620010a2565b915062000ee083620010ac565b925062000f0f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000f17565b905092915050565b60008262000f29576001905062000ffc565b8162000f39576000905062000ffc565b816001811462000f52576002811462000f5d5762000f93565b600191505062000ffc565b60ff84111562000f725762000f716200114d565b5b8360020a91508482111562000f8c5762000f8b6200114d565b5b5062000ffc565b5060208310610133831016604e8410600b841016171562000fcd5782820a90508381111562000fc75762000fc66200114d565b5b62000ffc565b62000fdc848484600162000e6b565b9250905081840481111562000ff65762000ff56200114d565b5b81810290505b9392505050565b60006200101082620010a2565b91506200101d83620010a2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200105957620010586200114d565b5b828202905092915050565b6000620010718262001082565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015620010d9578082015181840152602081019050620010bc565b83811115620010e9576000848401525b50505050565b600060028204905060018216806200110857607f821691505b602082108114156200111f576200111e6200117c565b5b50919050565b6000620011328262001139565b9050919050565b60006200114682620011b0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b60008160601b9050919050565b60008160011c9050919050565b620011d58162001064565b8114620011e157600080fd5b50565b620011ef8162001078565b8114620011fb57600080fd5b50565b60805160601c612ae56200121a60003960005050612ae56000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80636e5221b0116100f9578063a9059cbb11610097578063cd44c62111610071578063cd44c62114610534578063dd62ed3e14610550578063f21e854214610580578063fa75826e1461059e576101a9565b8063a9059cbb146104b6578063b29fdfcf146104e6578063c45a015514610516576101a9565b8063927f3d41116100d3578063927f3d411461041a57806395d89b4114610438578063a457c2d714610456578063a5ebc1c514610486576101a9565b80636e5221b01461039c57806370a08231146103cc57806377e6de2f146103fc576101a9565b806323b872dd11610166578063395093511161014057806339509351146103165780633ee180a41461034657806349bd5a5e146103625780636c56ca1314610380576101a9565b806323b872dd146102aa5780632f229794146102da578063313ce567146102f8576101a9565b806306fdde03146101ae578063095ea7b3146101cc5780630b3d95ec146101fc57806311cdd8b81461022c57806318160ddd1461025c5780632226fb5c1461027a575b600080fd5b6101b66105ce565b6040516101c391906124bc565b60405180910390f35b6101e660048036038101906101e191906121aa565b610660565b6040516101f391906124a1565b60405180910390f35b610216600480360381019061021191906120bd565b610677565b60405161022391906124a1565b60405180910390f35b610246600480360381019061024191906120bd565b610697565b60405161025391906124a1565b60405180910390f35b6102646106b7565b60405161027191906125be565b60405180910390f35b610294600480360381019061028f91906120bd565b6106c1565b6040516102a191906124a1565b60405180910390f35b6102c460048036038101906102bf9190612157565b6106e1565b6040516102d191906124a1565b60405180910390f35b6102e26107ac565b6040516102ef9190612486565b60405180910390f35b6103006107d2565b60405161030d91906125be565b60405180910390f35b610330600480360381019061032b91906121aa565b6107ec565b60405161033d91906124a1565b60405180910390f35b610360600480360381019061035b91906121aa565b610891565b005b61036a61093f565b6040516103779190612486565b60405180910390f35b61039a60048036038101906103959190612217565b610965565b005b6103b660048036038101906103b191906120bd565b610a34565b6040516103c391906125be565b60405180910390f35b6103e660048036038101906103e191906120bd565b610a4c565b6040516103f391906125be565b60405180910390f35b610404610a94565b60405161041191906124a1565b60405180910390f35b610422610aa7565b60405161042f9190612486565b60405180910390f35b610440610acd565b60405161044d91906124bc565b60405180910390f35b610470600480360381019061046b91906121aa565b610b5f565b60405161047d91906124a1565b60405180910390f35b6104a0600480360381019061049b91906120bd565b610c1e565b6040516104ad91906124a1565b60405180910390f35b6104d060048036038101906104cb91906121aa565b610c3e565b6040516104dd91906124a1565b60405180910390f35b61050060048036038101906104fb91906120bd565b610c55565b60405161050d91906124a1565b60405180910390f35b61051e610c75565b60405161052b9190612486565b60405180910390f35b61054e600480360381019061054991906120bd565b610c9b565b005b61056a60048036038101906105659190612117565b610d5c565b60405161057791906125be565b60405180910390f35b610588610de3565b60405161059591906124a1565b60405180910390f35b6105b860048036038101906105b391906120bd565b610df6565b6040516105c591906124a1565b60405180910390f35b6060600380546105dd9061272c565b80601f01602080910402602001604051908101604052809291908181526020018280546106099061272c565b80156106565780601f1061062b57610100808354040283529160200191610656565b820191906000526020600020905b81548152906001019060200180831161063957829003601f168201915b5050505050905090565b600061066d338484610e16565b6001905092915050565b600e6020528060005260406000206000915054906101000a900460ff1681565b600f6020528060005260406000206000915054906101000a900460ff1681565b6000600654905090565b60256020528060005260406000206000915054906101000a900460ff1681565b60006106ee848484610fe1565b6107a1843361079c85604051806060016040528060288152602001612a6360289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a619092919063ffffffff16565b610e16565b600190509392505050565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560009054906101000a900460ff1660ff16905090565b6000610887338461088285600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ac590919063ffffffff16565b610e16565b6001905092915050565b601b546002336040516020016108a79190612454565b6040516020818303038152906040526040516108c3919061246f565b602060405180830381855afa1580156108e0573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061090391906121ea565b1461090d5761093b565b61093a601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168383610fe1565b5b5050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b5460023360405160200161097b9190612454565b604051602081830303815290604052604051610997919061246f565b602060405180830381855afa1580156109b4573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906109d791906121ea565b146109e157610a31565b610a30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683610fe1565b5b50565b601d6020528060005260406000206000915090505481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601660009054906101000a900460ff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060048054610adc9061272c565b80601f0160208091040260200160405190810160405280929190818152602001828054610b089061272c565b8015610b555780601f10610b2a57610100808354040283529160200191610b55565b820191906000526020600020905b815481529060010190602001808311610b3857829003601f168201915b5050505050905090565b6000610c143384610c0f85604051806060016040528060258152602001612a8b60259139600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a619092919063ffffffff16565b610e16565b6001905092915050565b600d6020528060005260406000206000915054906101000a900460ff1681565b6000610c4b338484610fe1565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b54600233604051602001610cb19190612454565b604051602081830303815290604052604051610ccd919061246f565b602060405180830381855afa158015610cea573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d0d91906121ea565b14610d1757610d59565b80601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601a60009054906101000a900460ff1681565b601c6020528060005260406000206000915054906101000a900460ff1681565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7d9061259e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ef6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eed906124fe565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610fd491906125be565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611051576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110489061257e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b8906124de565b60405180910390fd5b60008111611104576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fb9061255e565b60405180910390fd5b6000819050600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806111aa5750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156111c0576111ba848483611b23565b50611a5c565b60008390506000600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050600042601754601560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611266919061260b565b119050811561127457600080fd5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16141561193657600080600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040516024016040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611362919061246f565b6000604051808303816000865af19150503d806000811461139f576040519150601f19603f3d011682016040523d82523d6000602084013e6113a4565b606091505b509150506000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d21220a76040516024016040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161143c919061246f565b6000604051808303816000865af19150503d8060008114611479576040519150601f19603f3d011682016040523d82523d6000602084013e61147e565b606091505b509150506000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040516024016040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611516919061246f565b6000604051808303816000865af19150503d8060008114611553576040519150601f19603f3d011682016040523d82523d6000602084013e611558565b606091505b50915050600080828060200190518101906115739190612271565b9150915060008580602001905181019061158d91906120ea565b90506000858060200190518101906115a591906120ea565b905060008273ffffffffffffffffffffffffffffffffffffffff16601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516024016115f39190612486565b6040516020818303038152906040527f70a08231000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161167d919061246f565b6000604051808303816000865af19150503d80600081146116ba576040519150601f19603f3d011682016040523d82523d6000602084013e6116bf565b606091505b509150506000818060200190518101906116d99190612244565b905060008373ffffffffffffffffffffffffffffffffffffffff16601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516024016117279190612486565b6040516020818303038152906040527f70a08231000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516117b1919061246f565b6000604051808303816000865af19150503d80600081146117ee576040519150601f19603f3d011682016040523d82523d6000602084013e6117f3565b606091505b5091505060008180602001905181019061180d9190612244565b9050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141561189257828811156118875782886118799190612661565b9b506014548c119d5061188d565b8288149c505b611912565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415611911578087111561190a5780876118fc9190612661565b9b506014548c119d50611910565b8087149c505b5b5b8d15801561191e57508c155b61192757600080fd5b50505050505050505050505050505b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119c05750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a1a5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a4c57611a4b83601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611e14565b5b611a57878786611b23565b505050505b505050565b6000838311158290611aa9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa091906124bc565b60405180910390fd5b5060008385611ab89190612661565b9050809150509392505050565b6000808284611ad4919061260b565b905083811015611b19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b109061251e565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8a9061257e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfa906124de565b60405180910390fd5b806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611c84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7b9061253e565b60405180910390fd5b611cd5816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3f90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d68816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ac590919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e0791906125be565b60405180910390a3505050565b6000602154611e238484610d5c565b1090508015611e3a57611e398383600954611e89565b5b505050565b6000611e8183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a61565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ef9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef09061259e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f60906124fe565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161204791906125be565b60405180910390a3505050565b60008135905061206381612a06565b92915050565b60008151905061207881612a1d565b92915050565b60008151905061208d81612a34565b92915050565b6000813590506120a281612a4b565b92915050565b6000815190506120b781612a4b565b92915050565b6000602082840312156120d3576120d26127e0565b5b60006120e184828501612054565b91505092915050565b600060208284031215612100576120ff6127e0565b5b600061210e84828501612069565b91505092915050565b6000806040838503121561212e5761212d6127e0565b5b600061213c85828601612054565b925050602061214d85828601612054565b9150509250929050565b6000806000606084860312156121705761216f6127e0565b5b600061217e86828701612054565b935050602061218f86828701612054565b92505060406121a086828701612093565b9150509250925092565b600080604083850312156121c1576121c06127e0565b5b60006121cf85828601612054565b92505060206121e085828601612093565b9150509250929050565b600060208284031215612200576121ff6127e0565b5b600061220e8482850161207e565b91505092915050565b60006020828403121561222d5761222c6127e0565b5b600061223b84828501612093565b91505092915050565b60006020828403121561225a576122596127e0565b5b6000612268848285016120a8565b91505092915050565b60008060408385031215612288576122876127e0565b5b6000612296858286016120a8565b92505060206122a7858286016120a8565b9150509250929050565b6122ba81612695565b82525050565b6122d16122cc82612695565b61275e565b82525050565b6122e0816126b9565b82525050565b60006122f1826125d9565b6122fb81856125ef565b935061230b8185602086016126f9565b80840191505092915050565b6000612322826125e4565b61232c81856125fa565b935061233c8185602086016126f9565b612345816127e5565b840191505092915050565b600061235d6023836125fa565b915061236882612803565b604082019050919050565b60006123806022836125fa565b915061238b82612852565b604082019050919050565b60006123a3601b836125fa565b91506123ae826128a1565b602082019050919050565b60006123c66026836125fa565b91506123d1826128ca565b604082019050919050565b60006123e96029836125fa565b91506123f482612919565b604082019050919050565b600061240c6025836125fa565b915061241782612968565b604082019050919050565b600061242f6024836125fa565b915061243a826129b7565b604082019050919050565b61244e816126ef565b82525050565b600061246082846122c0565b60148201915081905092915050565b600061247b82846122e6565b915081905092915050565b600060208201905061249b60008301846122b1565b92915050565b60006020820190506124b660008301846122d7565b92915050565b600060208201905081810360008301526124d68184612317565b905092915050565b600060208201905081810360008301526124f781612350565b9050919050565b6000602082019050818103600083015261251781612373565b9050919050565b6000602082019050818103600083015261253781612396565b9050919050565b60006020820190508181036000830152612557816123b9565b9050919050565b60006020820190508181036000830152612577816123dc565b9050919050565b60006020820190508181036000830152612597816123ff565b9050919050565b600060208201905081810360008301526125b781612422565b9050919050565b60006020820190506125d36000830184612445565b92915050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b6000612616826126ef565b9150612621836126ef565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561265657612655612782565b5b828201905092915050565b600061266c826126ef565b9150612677836126ef565b92508282101561268a57612689612782565b5b828203905092915050565b60006126a0826126cf565b9050919050565b60006126b2826126cf565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b838110156127175780820151818401526020810190506126fc565b83811115612726576000848401525b50505050565b6000600282049050600182168061274457607f821691505b60208210811415612758576127576127b1565b5b50919050565b600061276982612770565b9050919050565b600061277b826127f6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b612a0f81612695565b8114612a1a57600080fd5b50565b612a26816126a7565b8114612a3157600080fd5b50565b612a3d816126c5565b8114612a4857600080fd5b50565b612a54816126ef565b8114612a5f57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220778f986dae82aec0c7cb9643a292ec585fb3cdaa241bcc2f784a40f9dac3f7d164736f6c63430008060033