60806040526040518060400160405280600781526020017f52454b5447555900000000000000000000000000000000000000000000000000815250600790805190602001906200005192919062000a89565b506040518060400160405280600581526020017f2452454b54000000000000000000000000000000000000000000000000000000815250600890805190602001906200009f92919062000a89565b506000600e60006101000a81548160ff0219169083151502179055506000600e60016101000a81548160ff0219169083151502179055506001600e60026101000a81548160ff021916908315150217905550348015620000fe57600080fd5b50600780546200010e9062000b68565b80601f01602080910402602001604051908101604052809291908181526020018280546200013c9062000b68565b80156200018d5780601f1062000161576101008083540402835291602001916200018d565b820191906000526020600020905b8154815290600101906020018083116200016f57829003601f168201915b505050505060088054620001a19062000b68565b80601f0160208091040260200160405190810160405280929190818152602001828054620001cf9062000b68565b8015620002205780601f10620001f45761010080835404028352916020019162000220565b820191906000526020600020905b8154815290600101906020018083116200020257829003601f168201915b505050505081600390805190602001906200023d92919062000a89565b5080600490805190602001906200025692919062000a89565b505050620002796200026d620006e560201b60201c565b620006ed60201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002e6816001620007b360201b60201c565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000354573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200037a919062000c07565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000404573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200042a919062000c07565b6040518363ffffffff1660e01b81526004016200044992919062000c4a565b6020604051808303816000875af115801562000469573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200048f919062000c07565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160146000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200057e601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620007b360201b60201c565b6000620005906200081e60201b60201c565b600a6200059e919062000e11565b62989680620005ae919062000e62565b90508060118190555080601281905550620005f36064620005df6001846200082760201b62000a531790919060201c565b6200083f60201b62000a691790919060201c565b600c819055506000600d819055506000600f819055506200062b6200061d6200085760201b60201c565b6001620007b360201b60201c565b6200063e306001620007b360201b60201c565b6200065361dead6001620007b360201b60201c565b62000688601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620007b360201b60201c565b620006dd6200069c620006e560201b60201c565b620006d16064620006bd6064866200082760201b62000a531790919060201c565b6200083f60201b62000a691790919060201c565b6200088160201b60201c565b5050620010aa565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620007c3620009ee60201b60201c565b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006012905090565b6000818362000837919062000e62565b905092915050565b600081836200084f919062000ef2565b905092915050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620008f3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008ea9062000f8b565b60405180910390fd5b620009076000838362000a7f60201b60201c565b80600260008282546200091b919062000fad565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620009ce91906200101b565b60405180910390a3620009ea6000838362000a8460201b60201c565b5050565b620009fe620006e560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000a246200085760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000a7d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a749062001088565b60405180910390fd5b565b505050565b505050565b82805462000a979062000b68565b90600052602060002090601f01602090048101928262000abb576000855562000b07565b82601f1062000ad657805160ff191683800117855562000b07565b8280016001018555821562000b07579182015b8281111562000b0657825182559160200191906001019062000ae9565b5b50905062000b16919062000b1a565b5090565b5b8082111562000b3557600081600090555060010162000b1b565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000b8157607f821691505b60208210810362000b975762000b9662000b39565b5b50919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000bcf8262000ba2565b9050919050565b62000be18162000bc2565b811462000bed57600080fd5b50565b60008151905062000c018162000bd6565b92915050565b60006020828403121562000c205762000c1f62000b9d565b5b600062000c308482850162000bf0565b91505092915050565b62000c448162000bc2565b82525050565b600060408201905062000c61600083018562000c39565b62000c70602083018462000c39565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000d055780860481111562000cdd5762000cdc62000c77565b5b600185161562000ced5780820291505b808102905062000cfd8562000ca6565b945062000cbd565b94509492505050565b60008262000d20576001905062000df3565b8162000d30576000905062000df3565b816001811462000d49576002811462000d545762000d8a565b600191505062000df3565b60ff84111562000d695762000d6862000c77565b5b8360020a91508482111562000d835762000d8262000c77565b5b5062000df3565b5060208310610133831016604e8410600b841016171562000dc45782820a90508381111562000dbe5762000dbd62000c77565b5b62000df3565b62000dd3848484600162000cb3565b9250905081840481111562000ded5762000dec62000c77565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000e1e8262000dfa565b915062000e2b8362000e04565b925062000e5a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000d0e565b905092915050565b600062000e6f8262000dfa565b915062000e7c8362000dfa565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000eb85762000eb762000c77565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000eff8262000dfa565b915062000f0c8362000dfa565b92508262000f1f5762000f1e62000ec3565b5b828204905092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000f73601f8362000f2a565b915062000f808262000f3b565b602082019050919050565b6000602082019050818103600083015262000fa68162000f64565b9050919050565b600062000fba8262000dfa565b915062000fc78362000dfa565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000fff5762000ffe62000c77565b5b828201905092915050565b620010158162000dfa565b82525050565b60006020820190506200103260008301846200100a565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006200107060208362000f2a565b91506200107d8262001038565b602082019050919050565b60006020820190508181036000830152620010a38162001061565b9050919050565b612f3280620010ba6000396000f3fe60806040526004361061016a5760003560e01c80636772c962116100d15780638da5cb5b1161008a578063c8c8ebe411610064578063c8c8ebe414610507578063dd62ed3e14610532578063e2f456051461056f578063f8b45b051461059a57610171565b80638da5cb5b1461047457806395d89b411461049f578063a9059cbb146104ca57610171565b80636772c9621461038857806370a08231146103b3578063715018a6146103f057806375f0a87414610407578063769c2f57146104325780637b7cfc011461045d57610171565b80632ae2f121116101235780632ae2f121146102885780632b14ca56146102b1578063313ce567146102dc578063470624021461030757806349bd5a5e146103325780634a62bb651461035d57610171565b806306fdde0314610176578063095ea7b3146101a15780630b3d69b0146101de5780631694505e146101f557806318160ddd1461022057806323b872dd1461024b57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105c5565b6040516101989190611f52565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c3919061200d565b610657565b6040516101d59190612068565b60405180910390f35b3480156101ea57600080fd5b506101f361067a565b005b34801561020157600080fd5b5061020a6106ae565b60405161021791906120e2565b60405180910390f35b34801561022c57600080fd5b506102356106d4565b604051610242919061210c565b60405180910390f35b34801561025757600080fd5b50610272600480360381019061026d9190612127565b6106de565b60405161027f9190612068565b60405180910390f35b34801561029457600080fd5b506102af60048036038101906102aa91906121a6565b61070d565b005b3480156102bd57600080fd5b506102c6610770565b6040516102d3919061210c565b60405180910390f35b3480156102e857600080fd5b506102f1610776565b6040516102fe9190612202565b60405180910390f35b34801561031357600080fd5b5061031c61077f565b604051610329919061210c565b60405180910390f35b34801561033e57600080fd5b50610347610785565b604051610354919061222c565b60405180910390f35b34801561036957600080fd5b506103726107ab565b60405161037f9190612068565b60405180910390f35b34801561039457600080fd5b5061039d6107be565b6040516103aa9190612068565b60405180910390f35b3480156103bf57600080fd5b506103da60048036038101906103d59190612247565b6107d1565b6040516103e7919061210c565b60405180910390f35b3480156103fc57600080fd5b50610405610819565b005b34801561041357600080fd5b5061041c61082d565b604051610429919061222c565b60405180910390f35b34801561043e57600080fd5b50610447610853565b6040516104549190612068565b60405180910390f35b34801561046957600080fd5b50610472610866565b005b34801561048057600080fd5b506104896108db565b604051610496919061222c565b60405180910390f35b3480156104ab57600080fd5b506104b4610905565b6040516104c19190611f52565b60405180910390f35b3480156104d657600080fd5b506104f160048036038101906104ec919061200d565b610997565b6040516104fe9190612068565b60405180910390f35b34801561051357600080fd5b5061051c6109ba565b604051610529919061210c565b60405180910390f35b34801561053e57600080fd5b5061055960048036038101906105549190612274565b6109c0565b604051610566919061210c565b60405180910390f35b34801561057b57600080fd5b50610584610a47565b604051610591919061210c565b60405180910390f35b3480156105a657600080fd5b506105af610a4d565b6040516105bc919061210c565b60405180910390f35b6060600380546105d4906122e3565b80601f0160208091040260200160405190810160405280929190818152602001828054610600906122e3565b801561064d5780601f106106225761010080835404028352916020019161064d565b820191906000526020600020905b81548152906001019060200180831161063057829003601f168201915b5050505050905090565b600080610662610a7f565b905061066f818585610a87565b600191505092915050565b610682610c50565b600e60019054906101000a900460ff1615600e60016101000a81548160ff021916908315150217905550565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b6000806106e9610a7f565b90506106f6858285610cce565b610701858585610d5a565b60019150509392505050565b610715610c50565b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600f5481565b60006012905090565b600d5481565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60029054906101000a900460ff1681565b600e60009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610821610c50565b61082b600061183e565b565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60019054906101000a900460ff1681565b61086e610c50565b600e60009054906101000a900460ff16156108be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b590612360565b60405180910390fd5b6001600e60006101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610914906122e3565b80601f0160208091040260200160405190810160405280929190818152602001828054610940906122e3565b801561098d5780601f106109625761010080835404028352916020019161098d565b820191906000526020600020905b81548152906001019060200180831161097057829003601f168201915b5050505050905090565b6000806109a2610a7f565b90506109af818585610d5a565b600191505092915050565b60115481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600c5481565b60125481565b60008183610a6191906123af565b905092915050565b60008183610a779190612438565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610af6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aed906124db565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5c9061256d565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c43919061210c565b60405180910390a3505050565b610c58610a7f565b73ffffffffffffffffffffffffffffffffffffffff16610c766108db565b73ffffffffffffffffffffffffffffffffffffffff1614610ccc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc3906125d9565b60405180910390fd5b565b6000610cda84846109c0565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610d545781811015610d46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3d90612645565b60405180910390fd5b610d538484848403610a87565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610dc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc0906126d7565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3090612769565b60405180910390fd5b60008111610e7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e73906127fb565b60405180910390fd5b610e846108db565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610ef25750610ec26108db565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015610f2b5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015610f65575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015610f7e5750600960009054906101000a900460ff16155b156113c757600e60009054906101000a900460ff1661107857600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806110385750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611077576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106e90612867565b60405180910390fd5b5b600e60029054906101000a900460ff16156113c657601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156111305750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156111d75760115481111561117a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611171906128f9565b60405180910390fd5b601254611186836107d1565b826111919190612919565b11156111d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c9906129bb565b60405180910390fd5b6113c5565b601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561127a5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611319576011548111156112c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bb90612a4d565b60405180910390fd5b600e60019054906101000a900460ff1615611314576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130b90612ab9565b60405180910390fd5b6113c4565b600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166113c357601254611376836107d1565b826113819190612919565b11156113c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b9906129bb565b60405180910390fd5b5b5b5b5b5b6000600c546113d5306107d1565b101590508080156113f25750600e60019054906101000a900460ff165b801561140b5750600960009054906101000a900460ff16155b80156114615750601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156114b75750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561150d5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611553576001600960006101000a81548160ff0219169083151502179055506115376000611904565b6000600960006101000a81548160ff0219169083151502179055505b6000600960009054906101000a900460ff16159050600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806116095750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561161357600090505b6000811561182b57601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806116bc5750601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156116ec576116e960646116db600d5487610a5390919063ffffffff16565b610a6990919063ffffffff16565b90505b601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561174757506000600d54115b1561177b576117746064611766600d5487610a5390919063ffffffff16565b610a6990919063ffffffff16565b9050611807565b601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156117d657506000600f54115b156118065761180360646117f5600f5487610a5390919063ffffffff16565b610a6990919063ffffffff16565b90505b5b600081111561181c5761181b8630836119f6565b5b80846118289190612ad9565b93505b6118368686866119f6565b505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600061190f306107d1565b905060008082036119215750506119f3565b6000151583151514801561194257506014600c5461193f91906123af565b82115b15611959576014600c5461195691906123af565b91505b61196282611c6c565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516119a890612b3e565b60006040518083038185875af1925050503d80600081146119e5576040519150601f19603f3d011682016040523d82523d6000602084013e6119ea565b606091505b50508091505050505b50565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5c90612bc5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ad4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acb90612c57565b60405180910390fd5b611adf838383611eaf565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611b65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5c90612ce9565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c53919061210c565b60405180910390a3611c66848484611eb4565b50505050565b6000600267ffffffffffffffff811115611c8957611c88612d09565b5b604051908082528060200260200182016040528015611cb75781602001602082028036833780820191505090505b5090503081600081518110611ccf57611cce612d38565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d9a9190612d7c565b81600181518110611dae57611dad612d38565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e1530600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610a87565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e79959493929190612ea2565b600060405180830381600087803b158015611e9357600080fd5b505af1158015611ea7573d6000803e3d6000fd5b505050505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611ef3578082015181840152602081019050611ed8565b83811115611f02576000848401525b50505050565b6000601f19601f8301169050919050565b6000611f2482611eb9565b611f2e8185611ec4565b9350611f3e818560208601611ed5565b611f4781611f08565b840191505092915050565b60006020820190508181036000830152611f6c8184611f19565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611fa482611f79565b9050919050565b611fb481611f99565b8114611fbf57600080fd5b50565b600081359050611fd181611fab565b92915050565b6000819050919050565b611fea81611fd7565b8114611ff557600080fd5b50565b60008135905061200781611fe1565b92915050565b6000806040838503121561202457612023611f74565b5b600061203285828601611fc2565b925050602061204385828601611ff8565b9150509250929050565b60008115159050919050565b6120628161204d565b82525050565b600060208201905061207d6000830184612059565b92915050565b6000819050919050565b60006120a86120a361209e84611f79565b612083565b611f79565b9050919050565b60006120ba8261208d565b9050919050565b60006120cc826120af565b9050919050565b6120dc816120c1565b82525050565b60006020820190506120f760008301846120d3565b92915050565b61210681611fd7565b82525050565b600060208201905061212160008301846120fd565b92915050565b6000806000606084860312156121405761213f611f74565b5b600061214e86828701611fc2565b935050602061215f86828701611fc2565b925050604061217086828701611ff8565b9150509250925092565b6121838161204d565b811461218e57600080fd5b50565b6000813590506121a08161217a565b92915050565b600080604083850312156121bd576121bc611f74565b5b60006121cb85828601611fc2565b92505060206121dc85828601612191565b9150509250929050565b600060ff82169050919050565b6121fc816121e6565b82525050565b600060208201905061221760008301846121f3565b92915050565b61222681611f99565b82525050565b6000602082019050612241600083018461221d565b92915050565b60006020828403121561225d5761225c611f74565b5b600061226b84828501611fc2565b91505092915050565b6000806040838503121561228b5761228a611f74565b5b600061229985828601611fc2565b92505060206122aa85828601611fc2565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806122fb57607f821691505b60208210810361230e5761230d6122b4565b5b50919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061234a601783611ec4565b915061235582612314565b602082019050919050565b600060208201905081810360008301526123798161233d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006123ba82611fd7565b91506123c583611fd7565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156123fe576123fd612380565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061244382611fd7565b915061244e83611fd7565b92508261245e5761245d612409565b5b828204905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006124c5602483611ec4565b91506124d082612469565b604082019050919050565b600060208201905081810360008301526124f4816124b8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612557602283611ec4565b9150612562826124fb565b604082019050919050565b600060208201905081810360008301526125868161254a565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006125c3602083611ec4565b91506125ce8261258d565b602082019050919050565b600060208201905081810360008301526125f2816125b6565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b600061262f601d83611ec4565b915061263a826125f9565b602082019050919050565b6000602082019050818103600083015261265e81612622565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f64726573732e0000000000000000000000000000000000000000000000000000602082015250565b60006126c1602683611ec4565b91506126cc82612665565b604082019050919050565b600060208201905081810360008301526126f0816126b4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573732e00000000000000000000000000000000000000000000000000000000602082015250565b6000612753602483611ec4565b915061275e826126f7565b604082019050919050565b6000602082019050818103600083015261278281612746565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206d757374206265206760008201527f726561746572207468616e207a65726f2e000000000000000000000000000000602082015250565b60006127e5603183611ec4565b91506127f082612789565b604082019050919050565b60006020820190508181036000830152612814816127d8565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000612851601683611ec4565b915061285c8261281b565b602082019050919050565b6000602082019050818103600083015261288081612844565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d6178207472616e73616374696f6e20616d6f756e742e000000000000000000602082015250565b60006128e3603783611ec4565b91506128ee82612887565b604082019050919050565b60006020820190508181036000830152612912816128d6565b9050919050565b600061292482611fd7565b915061292f83611fd7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561296457612963612380565b5b828201905092915050565b7f4d61782077616c6c65742065786365656465642e000000000000000000000000600082015250565b60006129a5601483611ec4565b91506129b08261296f565b602082019050919050565b600060208201905081810360008301526129d481612998565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d6178207472616e73616374696f6e20616d6f756e742e0000000000000000602082015250565b6000612a37603883611ec4565b9150612a42826129db565b604082019050919050565b60006020820190508181036000830152612a6681612a2a565b9050919050565b7f5377617020686173206e6f74206265656e20656e61626c65642e000000000000600082015250565b6000612aa3601a83611ec4565b9150612aae82612a6d565b602082019050919050565b60006020820190508181036000830152612ad281612a96565b9050919050565b6000612ae482611fd7565b9150612aef83611fd7565b925082821015612b0257612b01612380565b5b828203905092915050565b600081905092915050565b50565b6000612b28600083612b0d565b9150612b3382612b18565b600082019050919050565b6000612b4982612b1b565b9150819050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612baf602583611ec4565b9150612bba82612b53565b604082019050919050565b60006020820190508181036000830152612bde81612ba2565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612c41602383611ec4565b9150612c4c82612be5565b604082019050919050565b60006020820190508181036000830152612c7081612c34565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612cd3602683611ec4565b9150612cde82612c77565b604082019050919050565b60006020820190508181036000830152612d0281612cc6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612d7681611fab565b92915050565b600060208284031215612d9257612d91611f74565b5b6000612da084828501612d67565b91505092915050565b6000819050919050565b6000612dce612dc9612dc484612da9565b612083565b611fd7565b9050919050565b612dde81612db3565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612e1981611f99565b82525050565b6000612e2b8383612e10565b60208301905092915050565b6000602082019050919050565b6000612e4f82612de4565b612e598185612def565b9350612e6483612e00565b8060005b83811015612e95578151612e7c8882612e1f565b9750612e8783612e37565b925050600181019050612e68565b5085935050505092915050565b600060a082019050612eb760008301886120fd565b612ec46020830187612dd5565b8181036040830152612ed68186612e44565b9050612ee5606083018561221d565b612ef260808301846120fd565b969550505050505056fea264697066735822122040467aeb86810892eff76ac0f15fcd1d9f804ebfa69e591de4ef11b336af327364736f6c634300080e0033