Loading
[ { "anonymous": false, "inputs": [ { "components": [ { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "enum IDiamondCuttable.FacetCutAction", "name": "action", "type": "uint8" }, { "internalType": "bytes4[]", "name": "selectors", "type": "bytes4[]" } ], "indexed": false, "internalType": "struct IDiamondCuttable.FacetCut[]", "name": "facetCuts", "type": "tuple[]" }, { "indexed": false, "internalType": "address", "name": "target", "type": "address" }, { "indexed": false, "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "DiamondCut", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "stateMutability": "payable", "type": "fallback" }, { "inputs": [], "name": "acceptOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "enum IDiamondCuttable.FacetCutAction", "name": "action", "type": "uint8" }, { "internalType": "bytes4[]", "name": "selectors", "type": "bytes4[]" } ], "internalType": "struct IDiamondCuttable.FacetCut[]", "name": "facetCuts", "type": "tuple[]" }, { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "diamondCut", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "selector", "type": "bytes4" } ], "name": "facetAddress", "outputs": [ { "internalType": "address", "name": "facet", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "facetAddresses", "outputs": [ { "internalType": "address[]", "name": "addresses", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "facet", "type": "address" } ], "name": "facetFunctionSelectors", "outputs": [ { "internalType": "bytes4[]", "name": "selectors", "type": "bytes4[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "facets", "outputs": [ { "components": [ { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes4[]", "name": "selectors", "type": "bytes4[]" } ], "internalType": "struct IDiamondLoupe.Facet[]", "name": "diamondFacets", "type": "tuple[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getFallbackAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "nomineeOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "fallbackAddress", "type": "address" } ], "name": "setFallbackAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60806040523480156200001157600080fd5b50600062000029620007b760201b620013f21760201c565b90506000600c67ffffffffffffffff8111156200004b576200004a62001917565b5b6040519080825280602002602001820160405280156200007a5781602001602082028036833780820191505090505b509050631f931c1c60e01b816000815181106200009c576200009b62001946565b5b60200260200101907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681525050620001257f1f931c1c00000000000000000000000000000000000000000000000000000000600184620007e460201b6200141f179092919060201c565b637a0ed62760e01b8160018151811062000144576200014362001946565b5b60200260200101907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152505063adfca15e60e01b81600281518110620001af57620001ae62001946565b5b60200260200101907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815250506352ef6b2c60e01b816003815181106200021a576200021962001946565b5b60200260200101907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152505063cdffacc660e01b8160048151811062000285576200028462001946565b5b60200260200101907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815250506200030e7f48e2b09300000000000000000000000000000000000000000000000000000000600184620007e460201b6200141f179092919060201c565b6301ffc9a760e01b816005815181106200032d576200032c62001946565b5b60200260200101907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681525050620003b67f01ffc9a700000000000000000000000000000000000000000000000000000000600184620007e460201b6200141f179092919060201c565b638da5cb5b60e01b81600681518110620003d557620003d462001946565b5b60200260200101907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681525050638ab5150a60e01b8160078151811062000440576200043f62001946565b5b60200260200101907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152505063f2fde38b60e01b81600881518110620004ab57620004aa62001946565b5b60200260200101907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815250506379ba509760e01b8160098151811062000516576200051562001946565b5b60200260200101907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815250506200059f7f7f5828d000000000000000000000000000000000000000000000000000000000600184620007e460201b6200141f179092919060201c565b632c40805960e01b81600a81518110620005be57620005bd62001946565b5b60200260200101907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681525050639142376560e01b81600b8151811062000629576200062862001946565b5b60200260200101907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815250506000600167ffffffffffffffff81111562000695576200069462001917565b5b604051908082528060200260200182016040528015620006d257816020015b620006be620018cb565b815260200190600190039081620006b45790505b50905060405180606001604052803073ffffffffffffffffffffffffffffffffffffffff1681526020016000600281111562000713576200071262001975565b5b8152602001838152508160008151811062000733576200073262001946565b5b602002602001018190525062000780816000604051806020016040528060008152506200076a620008bf60201b620014f71760201c565b620008ec60201b6200152417909392919060201c565b620007ae336200079a62000b8460201b6200177b1760201c565b62000bb160201b620017a81790919060201c565b505050620023f8565b6000807f326d0c59a7612f6a9919e2a8ee333c80ba689d8ba2634de89c85cbb04832e70590508091505090565b63ffffffff60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916036200084f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008469062001a05565b60405180910390fd5b80836000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b6000807f177481ac65e4292921c69f62d1cc7f57541261e5d61c8175cf4e36a01c9bfc9390508091505090565b60008460010160009054906101000a900461ffff1661ffff16905060008190506000806007831611156200093757866002016000600384901c81526020019081526020016000205490505b60005b865181101562000ad75760008782815181106200095c576200095b62001946565b5b60200260200101519050600081602001519050600082604001515111620009ba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009b19062001a9d565b60405180910390fd5b60006002811115620009d157620009d062001975565b5b816002811115620009e757620009e662001975565b5b0362000a195762000a0b8585848d62000bf860201b620017ef17909392919060201c565b809550819650505062000ac7565b6001600281111562000a305762000a2f62001975565b5b81600281111562000a465762000a4562001975565b5b0362000a6c5762000a66828b62000ed260201b62001aaf1790919060201c565b62000ac6565b60028081111562000a825762000a8162001975565b5b81600281111562000a985762000a9762001975565b5b0362000ac55762000abc8585848d620011ca60201b62001d8917909392919060201c565b80955081965050505b5b5b505080806001019150506200093a565b5082821462000b0057818760010160006101000a81548161ffff021916908361ffff1602179055505b600060078316111562000b2c5780876002016000600385901c8152602001908152602001600020819055505b7f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67386868660405162000b619392919062001e20565b60405180910390a162000b7b8585620016df60201b60201c565b50505050505050565b6000807f8a22373512790c48b83a1fe2efdd2888d4a917bcdc24d0adf63e60f67168046090508091505090565b808260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000803073ffffffffffffffffffffffffffffffffffffffff16836000015173ffffffffffffffffffffffffffffffffffffffff16148062000c66575062000c65836000015173ffffffffffffffffffffffffffffffffffffffff16620018b860201b620004df1760201c565b5b62000ca8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c9f9062001ee1565b60405180910390fd5b60005b83604001515181101562000ec25760008460400151828151811062000cd55762000cd462001946565b5b602002602001015190506000886000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020549050600073ffffffffffffffffffffffffffffffffffffffff168160601c73ffffffffffffffffffffffffffffffffffffffff161462000dac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000da39062001f79565b60405180910390fd5b8760001b866000015160601b6bffffffffffffffffffffffff191617896000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020819055506000600560078a16901b905080837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916901c817fffffffff0000000000000000000000000000000000000000000000000000000060001b901c19891617975060e0810362000ea957878a600201600060038c901c8152602001908152602001600020819055506000801b97505b8880600101995050505050808060010191505062000cab565b5084849150915094509492505050565b62000f02816000015173ffffffffffffffffffffffffffffffffffffffff16620018b860201b620004df1760201c565b62000f44576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000f3b9062002011565b60405180910390fd5b60005b816040015151811015620011c55760008260400151828151811062000f715762000f7062001946565b5b602002602001015190506000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002054905060008160601c9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200104d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620010449062002083565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620010be576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620010b5906200211b565b60405180910390fd5b846000015173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362001133576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200112a90620021b3565b60405180910390fd5b846000015160601b6bffffffffffffffffffffffff19166bffffffffffffffffffffffff60001b831617866000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002081905550505050808060010191505062000f47565b505050565b600080600073ffffffffffffffffffffffffffffffffffffffff16836000015173ffffffffffffffffffffffffffffffffffffffff161462001243576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200123a906200224b565b60405180910390fd5b6000600386901c9050600060078716905060005b856040015151811015620016c45760008660400151828151811062001281576200128062001946565b5b6020026020010151905060008a6000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020549050600073ffffffffffffffffffffffffffffffffffffffff168160601c73ffffffffffffffffffffffffffffffffffffffff160362001358576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200134f9062002083565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168160601c73ffffffffffffffffffffffffffffffffffffffff1603620013cc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620013c3906200211b565b60405180910390fd5b6000801b890362001402578480600190039550508a6002016000868152602001908152602001600020549850600793506200140c565b8380600190039450505b6000806000600587901b8c901b9250847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146200152f578d6000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020546bffffffffffffffffffffffff19166bffffffffffffffffffffffff60001b8516178e6000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020819055505b8d6000016000867bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000206000905560008460001c61ffff169050600381901c9250600560078216901b915050878214620016375760008e600201600084815260200190815260200160002054905081847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916901c827fffffffff0000000000000000000000000000000000000000000000000000000060001b901c198216179050808f6002016000858152602001908152602001600020819055505062001688565b80837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916901c817fffffffff0000000000000000000000000000000000000000000000000000000060001b901c198d16179b505b60008703620016b1578d6002016000898152602001908152602001600020600090556000801b9b505b5050505050808060010191505062001257565b5080600383901b179650868693509350505094509492505050565b60008151141515600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515146200175b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200175290620022e3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614620018b4573073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146200183357620017f08273ffffffffffffffffffffffffffffffffffffffff16620018b860201b620004df1760201c565b62001832576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162001829906200237b565b60405180910390fd5b5b60008273ffffffffffffffffffffffffffffffffffffffff16826040516200185c9190620023df565b600060405180830381855af49150503d806000811462001899576040519150601f19603f3d011682016040523d82523d6000602084013e6200189e565b606091505b5050905080620018b2573d6000803e3d6000fd5b505b5050565b600080823b905060008111915050919050565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600060028111156200190a576200190962001975565b5b8152602001606081525090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600082825260208201905092915050565b7f4552433136353a20696e76616c696420696e7465726661636520696400000000600082015250565b6000620019ed601c83620019a4565b9150620019fa82620019b5565b602082019050919050565b6000602082019050818103600083015262001a2081620019de565b9050919050565b7f4469616d6f6e64426173653a206e6f2073656c6563746f72732073706563696660008201527f6965640000000000000000000000000000000000000000000000000000000000602082015250565b600062001a85602383620019a4565b915062001a928262001a27565b604082019050919050565b6000602082019050818103600083015262001ab88162001a76565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062001b188262001aeb565b9050919050565b62001b2a8162001b0b565b82525050565b6003811062001b445762001b4362001975565b5b50565b600081905062001b578262001b30565b919050565b600062001b698262001b47565b9050919050565b62001b7b8162001b5c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b62001be48162001bad565b82525050565b600062001bf8838362001bd9565b60208301905092915050565b6000602082019050919050565b600062001c1e8262001b81565b62001c2a818562001b8c565b935062001c378362001b9d565b8060005b8381101562001c6e57815162001c52888262001bea565b975062001c5f8362001c04565b92505060018101905062001c3b565b5085935050505092915050565b600060608301600083015162001c95600086018262001b1f565b50602083015162001caa602086018262001b70565b506040830151848203604086015262001cc4828262001c11565b9150508091505092915050565b600062001cdf838362001c7b565b905092915050565b6000602082019050919050565b600062001d018262001abf565b62001d0d818562001aca565b93508360208202850162001d218562001adb565b8060005b8581101562001d63578484038952815162001d41858262001cd1565b945062001d4e8362001ce7565b925060208a0199505060018101905062001d25565b50829750879550505050505092915050565b62001d808162001b0b565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b8381101562001dc257808201518184015260208101905062001da5565b60008484015250505050565b6000601f19601f8301169050919050565b600062001dec8262001d86565b62001df8818562001d91565b935062001e0a81856020860162001da2565b62001e158162001dce565b840191505092915050565b6000606082019050818103600083015262001e3c818662001cf4565b905062001e4d602083018562001d75565b818103604083015262001e61818462001ddf565b9050949350505050565b7f4469616d6f6e64426173653a204144442074617267657420686173206e6f206360008201527f6f64650000000000000000000000000000000000000000000000000000000000602082015250565b600062001ec9602383620019a4565b915062001ed68262001e6b565b604082019050919050565b6000602082019050818103600083015262001efc8162001eba565b9050919050565b7f4469616d6f6e64426173653a2073656c6563746f7220616c726561647920616460008201527f6465640000000000000000000000000000000000000000000000000000000000602082015250565b600062001f61602383620019a4565b915062001f6e8262001f03565b604082019050919050565b6000602082019050818103600083015262001f948162001f52565b9050919050565b7f4469616d6f6e64426173653a205245504c41434520746172676574206861732060008201527f6e6f20636f646500000000000000000000000000000000000000000000000000602082015250565b600062001ff9602783620019a4565b9150620020068262001f9b565b604082019050919050565b600060208201905081810360008301526200202c8162001fea565b9050919050565b7f4469616d6f6e64426173653a2073656c6563746f72206e6f7420666f756e6400600082015250565b60006200206b601f83620019a4565b9150620020788262002033565b602082019050919050565b600060208201905081810360008301526200209e816200205c565b9050919050565b7f4469616d6f6e64426173653a2073656c6563746f7220697320696d6d7574616260008201527f6c65000000000000000000000000000000000000000000000000000000000000602082015250565b600062002103602283620019a4565b91506200211082620020a5565b604082019050919050565b600060208201905081810360008301526200213681620020f4565b9050919050565b7f4469616d6f6e64426173653a205245504c41434520746172676574206973206960008201527f64656e746963616c000000000000000000000000000000000000000000000000602082015250565b60006200219b602883620019a4565b9150620021a8826200213d565b604082019050919050565b60006020820190508181036000830152620021ce816200218c565b9050919050565b7f4469616d6f6e64426173653a2052454d4f564520746172676574206d7573742060008201527f6265207a65726f20616464726573730000000000000000000000000000000000602082015250565b600062002233602f83620019a4565b91506200224082620021d5565b604082019050919050565b60006020820190508181036000830152620022668162002224565b9050919050565b7f4469616d6f6e64426173653a20696e76616c696420696e697469616c697a617460008201527f696f6e20706172616d6574657273000000000000000000000000000000000000602082015250565b6000620022cb602e83620019a4565b9150620022d8826200226d565b604082019050919050565b60006020820190508181036000830152620022fe81620022bc565b9050919050565b7f4469616d6f6e64426173653a20696e697469616c697a6174696f6e207461726760008201527f657420686173206e6f20636f6465000000000000000000000000000000000000602082015250565b600062002363602e83620019a4565b9150620023708262002305565b604082019050919050565b60006020820190508181036000830152620023968162002354565b9050919050565b600081905092915050565b6000620023b58262001d86565b620023c181856200239d565b9350620023d381856020860162001da2565b80840191505092915050565b6000620023ed8284620023a8565b915081905092915050565b613a2b80620024086000396000f3fe6080604052600436106100ab5760003560e01c80638ab5150a116100645780638ab5150a146102405780638da5cb5b1461026b5780639142376514610296578063adfca15e146102bf578063cdffacc6146102fc578063f2fde38b14610339576100b2565b806301ffc9a7146101425780631f931c1c1461017f5780632c408059146101a857806352ef6b2c146101d357806379ba5097146101fe5780637a0ed62714610215576100b2565b366100b257005b60006100bc610362565b90506100dd8173ffffffffffffffffffffffffffffffffffffffff166104df565b61011c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610113906125db565b60405180910390fd5b3660008037600080366000845af43d6000803e806000811461013d573d6000f35b3d6000fd5b34801561014e57600080fd5b5061016960048036038101906101649190612667565b6104f2565b60405161017691906126af565b60405180910390f35b34801561018b57600080fd5b506101a660048036038101906101a191906127e3565b610515565b005b3480156101b457600080fd5b506101bd610623565b6040516101ca9190612887565b60405180910390f35b3480156101df57600080fd5b506101e8610656565b6040516101f59190612960565b60405180910390f35b34801561020a57600080fd5b506102136108b7565b005b34801561022157600080fd5b5061022a610a0b565b6040516102379190612b3f565b60405180910390f35b34801561024c57600080fd5b50610255610f6c565b6040516102629190612887565b60405180910390f35b34801561027757600080fd5b50610280610f9f565b60405161028d9190612887565b60405180910390f35b3480156102a257600080fd5b506102bd60048036038101906102b89190612b61565b610fd2565b005b3480156102cb57600080fd5b506102e660048036038101906102e19190612b61565b6110b8565b6040516102f39190612bfd565b60405180910390f35b34801561030857600080fd5b50610323600480360381019061031e9190612667565b6112d5565b6040516103309190612887565b60405180910390f35b34801561034557600080fd5b50610360600480360381019061035b9190612b61565b61133c565b005b60008060007f177481ac65e4292921c69f62d1cc7f57541261e5d61c8175cf4e36a01c9bfc939050809150600082600001600080357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000205460601c9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036104d6578260030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036104d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104cc90612c91565b60405180910390fd5b5b80935050505090565b600080823b905060008111915050919050565b600061050e826105006113f2565b61228a90919063ffffffff16565b9050919050565b61051d61177b565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a590612cfd565b60405180910390fd5b61061c8585906105be9190612fce565b8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061060c6114f7565b611524909392919063ffffffff16565b5050505050565b600061062d6114f7565b60030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060006106626114f7565b90508060010160009054906101000a900461ffff1661ffff1667ffffffffffffffff81111561069457610693612d2e565b5b6040519080825280602002602001820160405280156106c25781602001602082028036833780820191505090505b50915060008060005b8360010160009054906101000a900461ffff1661ffff168210156108ad57600084600201600083815260200190815260200160002054905060005b600881101561089857838061071a9061301c565b9450508560010160009054906101000a900461ffff1661ffff168411610898576000600582901b83901b90506000876000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000205460601c90506000805b88811015610816578a81815181106107c0576107bf613064565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108035760019150610816565b808061080e9061301c565b9150506107a5565b50801561082557505050610885565b818a898151811061083957610838613064565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050878061087e9061301c565b9850505050505b80806108909061301c565b915050610706565b505080806108a59061301c565b9150506106cb565b5081845250505090565b6108bf6122f5565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610950576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094790613105565b60405180910390fd5b600061095a61177b565b90503373ffffffffffffffffffffffffffffffffffffffff168160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36109ed33826117a890919063ffffffff16565b610a0860006109fa6122f5565b61232290919063ffffffff16565b50565b60606000610a176114f7565b90508060010160009054906101000a900461ffff1661ffff1667ffffffffffffffff811115610a4957610a48612d2e565b5b604051908082528060200260200182016040528015610a8257816020015b610a6f612528565b815260200190600190039081610a675790505b50915060008160010160009054906101000a900461ffff1661ffff1667ffffffffffffffff811115610ab757610ab6612d2e565b5b604051908082528060200260200182016040528015610ae55781602001602082028036833780820191505090505b50905060008060005b8460010160009054906101000a900461ffff1661ffff16821015610ef857600085600201600083815260200190815260200160002054905060005b6008811015610ee3578380610b3d9061301c565b9450508660010160009054906101000a900461ffff1661ffff168411610ee3576000600582901b83901b90506000886000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000205460601c90506000805b88811015610d34578273ffffffffffffffffffffffffffffffffffffffff168c8281518110610bfa57610bf9613064565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1603610d2157838c8281518110610c3557610c34613064565b5b6020026020010151602001518b8381518110610c5457610c53613064565b5b602002602001015160ff1681518110610c7057610c6f613064565b5b60200260200101907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152505060ff8a8281518110610cd157610cd0613064565b5b602002602001015160ff1610610ce657600080fd5b898181518110610cf957610cf8613064565b5b602002602001018051809190610d0e90613132565b60ff1660ff168152505060019150610d34565b8080610d2c9061301c565b915050610bc8565b508015610d4357505050610ed0565b818b8981518110610d5757610d56613064565b5b60200260200101516000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508960010160009054906101000a900461ffff1661ffff1667ffffffffffffffff811115610dc557610dc4612d2e565b5b604051908082528060200260200182016040528015610df35781602001602082028036833780820191505090505b508b8981518110610e0757610e06613064565b5b602002602001015160200181905250828b8981518110610e2a57610e29613064565b5b602002602001015160200151600081518110610e4957610e48613064565b5b60200260200101907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815250506001898981518110610eaa57610ea9613064565b5b602002602001019060ff16908160ff16815250508780610ec99061301c565b9850505050505b8080610edb9061301c565b915050610b29565b50508080610ef09061301c565b915050610aee565b5060005b82811015610f61576000848281518110610f1957610f18613064565b5b602002602001015160ff1690506000878381518110610f3b57610f3a613064565b5b602002602001015160200151905081815250508080610f599061301c565b915050610efc565b508185525050505090565b6000610f766122f5565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610fa961177b565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610fda61177b565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461106b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106290612cfd565b60405180910390fd5b806110746114f7565b60030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606060006110c46114f7565b90508060010160009054906101000a900461ffff1661ffff1667ffffffffffffffff8111156110f6576110f5612d2e565b5b6040519080825280602002602001820160405280156111245781602001602082028036833780820191505090505b50915060008060005b8360010160009054906101000a900461ffff1661ffff168210156112c957600084600201600083815260200190815260200160002054905060005b60088110156112b457838061117c9061301c565b9450508560010160009054906101000a900461ffff1661ffff1684116112b4576000600582901b83901b9050866000016000827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000205460601c73ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16036112a0578088878151811061124557611244613064565b5b60200260200101907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681525050858061129c9061301c565b9650505b5080806112ac9061301c565b915050611168565b505080806112c19061301c565b91505061112d565b50818452505050919050565b60006112df6114f7565b6000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000205460601c9050919050565b61134461177b565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cc90612cfd565b60405180910390fd5b6113ef816113e16122f5565b61232290919063ffffffff16565b50565b6000807f326d0c59a7612f6a9919e2a8ee333c80ba689d8ba2634de89c85cbb04832e70590508091505090565b63ffffffff60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191603611487576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147e906131a7565b60405180910390fd5b80836000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b6000807f177481ac65e4292921c69f62d1cc7f57541261e5d61c8175cf4e36a01c9bfc9390508091505090565b60008460010160009054906101000a900461ffff1661ffff169050600081905060008060078316111561156e57866002016000600384901c81526020019081526020016000205490505b60005b86518110156116da57600087828151811061158f5761158e613064565b5b602002602001015190506000816020015190506000826040015151116115ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e190613239565b60405180910390fd5b600060028111156115fe576115fd613259565b5b81600281111561161157611610613259565b5b0361163a5761162d8585848d6117ef909392919063ffffffff16565b80955081965050506116cb565b6001600281111561164e5761164d613259565b5b81600281111561166157611660613259565b5b0361167e57611679828b611aaf90919063ffffffff16565b6116ca565b60028081111561169157611690613259565b5b8160028111156116a4576116a3613259565b5b036116c9576116c08585848d611d89909392919063ffffffff16565b80955081965050505b5b5b50508080600101915050611571565b5082821461170257818760010160006101000a81548161ffff021916908361ffff1602179055505b600060078316111561172d5780876002016000600385901c8152602001908152602001600020819055505b7f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67386868660405161176093929190613461565b60405180910390a16117728585612369565b50505050505050565b6000807f8a22373512790c48b83a1fe2efdd2888d4a917bcdc24d0adf63e60f67168046090508091505090565b808260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000803073ffffffffffffffffffffffffffffffffffffffff16836000015173ffffffffffffffffffffffffffffffffffffffff16148061184f575061184e836000015173ffffffffffffffffffffffffffffffffffffffff166104df565b5b61188e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188590613518565b60405180910390fd5b60005b836040015151811015611a9f576000846040015182815181106118b7576118b6613064565b5b602002602001015190506000886000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020549050600073ffffffffffffffffffffffffffffffffffffffff168160601c73ffffffffffffffffffffffffffffffffffffffff161461198b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611982906135aa565b60405180910390fd5b8760001b866000015160601b6bffffffffffffffffffffffff191617896000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020819055506000600560078a16901b905080837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916901c817fffffffff0000000000000000000000000000000000000000000000000000000060001b901c19891617975060e08103611a8757878a600201600060038c901c8152602001908152602001600020819055506000801b97505b88806001019950505050508080600101915050611891565b5084849150915094509492505050565b611ad2816000015173ffffffffffffffffffffffffffffffffffffffff166104df565b611b11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b089061363c565b60405180910390fd5b60005b816040015151811015611d8457600082604001518281518110611b3a57611b39613064565b5b602002602001015190506000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002054905060008160601c9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0a906136a8565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c789061373a565b60405180910390fd5b846000015173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cea906137cc565b60405180910390fd5b846000015160601b6bffffffffffffffffffffffff19166bffffffffffffffffffffffff60001b831617866000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020819055505050508080600101915050611b14565b505050565b600080600073ffffffffffffffffffffffffffffffffffffffff16836000015173ffffffffffffffffffffffffffffffffffffffff1614611dff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df69061385e565b60405180910390fd5b6000600386901c9050600060078716905060005b85604001515181101561226f57600086604001518281518110611e3957611e38613064565b5b6020026020010151905060008a6000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020549050600073ffffffffffffffffffffffffffffffffffffffff168160601c73ffffffffffffffffffffffffffffffffffffffff1603611f0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f04906136a8565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168160601c73ffffffffffffffffffffffffffffffffffffffff1603611f7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f759061373a565b60405180910390fd5b6000801b8903611fb2578480600190039550508a600201600086815260200190815260200160002054985060079350611fbc565b8380600190039450505b6000806000600587901b8c901b9250847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146120de578d6000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020546bffffffffffffffffffffffff19166bffffffffffffffffffffffff60001b8516178e6000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020819055505b8d6000016000867bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000206000905560008460001c61ffff169050600381901c9250600560078216901b9150508782146121e45760008e600201600084815260200190815260200160002054905081847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916901c827fffffffff0000000000000000000000000000000000000000000000000000000060001b901c198216179050808f60020160008581526020019081526020016000208190555050612235565b80837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916901c817fffffffff0000000000000000000000000000000000000000000000000000000060001b901c198d16179b505b6000870361225d578d6002016000898152602001908152602001600020600090556000801b9b505b50505050508080600101915050611e13565b5080600383901b179650868693509350505094509492505050565b6000826000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff16905092915050565b6000807f24aa1f7b31fd188a8d3ecfb06bc55c806040e59b03bd4396283442fce661789090508091505090565b808260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60008151141515600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515146123e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d9906138f0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612524573073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146124a8576124688273ffffffffffffffffffffffffffffffffffffffff166104df565b6124a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249e90613982565b60405180910390fd5b5b60008273ffffffffffffffffffffffffffffffffffffffff16826040516124cf91906139de565b600060405180830381855af49150503d806000811461250a576040519150601f19603f3d011682016040523d82523d6000602084013e61250f565b606091505b5050905080612522573d6000803e3d6000fd5b505b5050565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b600082825260208201905092915050565b7f50726f78793a20696d706c656d656e746174696f6e206d75737420626520636f60008201527f6e74726163740000000000000000000000000000000000000000000000000000602082015250565b60006125c5602683612558565b91506125d082612569565b604082019050919050565b600060208201905081810360008301526125f4816125b8565b9050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6126448161260f565b811461264f57600080fd5b50565b6000813590506126618161263b565b92915050565b60006020828403121561267d5761267c612605565b5b600061268b84828501612652565b91505092915050565b60008115159050919050565b6126a981612694565b82525050565b60006020820190506126c460008301846126a0565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126126ef576126ee6126ca565b5b8235905067ffffffffffffffff81111561270c5761270b6126cf565b5b602083019150836020820283011115612728576127276126d4565b5b9250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061275a8261272f565b9050919050565b61276a8161274f565b811461277557600080fd5b50565b60008135905061278781612761565b92915050565b60008083601f8401126127a3576127a26126ca565b5b8235905067ffffffffffffffff8111156127c0576127bf6126cf565b5b6020830191508360018202830111156127dc576127db6126d4565b5b9250929050565b6000806000806000606086880312156127ff576127fe612605565b5b600086013567ffffffffffffffff81111561281d5761281c61260a565b5b612829888289016126d9565b9550955050602061283c88828901612778565b935050604086013567ffffffffffffffff81111561285d5761285c61260a565b5b6128698882890161278d565b92509250509295509295909350565b6128818161274f565b82525050565b600060208201905061289c6000830184612878565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6128d78161274f565b82525050565b60006128e983836128ce565b60208301905092915050565b6000602082019050919050565b600061290d826128a2565b61291781856128ad565b9350612922836128be565b8060005b8381101561295357815161293a88826128dd565b9750612945836128f5565b925050600181019050612926565b5085935050505092915050565b6000602082019050818103600083015261297a8184612902565b905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6129e38161260f565b82525050565b60006129f583836129da565b60208301905092915050565b6000602082019050919050565b6000612a19826129ae565b612a2381856129b9565b9350612a2e836129ca565b8060005b83811015612a5f578151612a4688826129e9565b9750612a5183612a01565b925050600181019050612a32565b5085935050505092915050565b6000604083016000830151612a8460008601826128ce565b5060208301518482036020860152612a9c8282612a0e565b9150508091505092915050565b6000612ab58383612a6c565b905092915050565b6000602082019050919050565b6000612ad582612982565b612adf818561298d565b935083602082028501612af18561299e565b8060005b85811015612b2d5784840389528151612b0e8582612aa9565b9450612b1983612abd565b925060208a01995050600181019050612af5565b50829750879550505050505092915050565b60006020820190508181036000830152612b598184612aca565b905092915050565b600060208284031215612b7757612b76612605565b5b6000612b8584828501612778565b91505092915050565b600082825260208201905092915050565b6000612baa826129ae565b612bb48185612b8e565b9350612bbf836129ca565b8060005b83811015612bf0578151612bd788826129e9565b9750612be283612a01565b925050600181019050612bc3565b5085935050505092915050565b60006020820190508181036000830152612c178184612b9f565b905092915050565b7f4469616d6f6e64426173653a206e6f20666163657420666f756e6420666f722060008201527f66756e6374696f6e207369676e61747572650000000000000000000000000000602082015250565b6000612c7b603283612558565b9150612c8682612c1f565b604082019050919050565b60006020820190508181036000830152612caa81612c6e565b9050919050565b7f4f776e61626c653a2073656e646572206d757374206265206f776e6572000000600082015250565b6000612ce7601d83612558565b9150612cf282612cb1565b602082019050919050565b60006020820190508181036000830152612d1681612cda565b9050919050565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612d6682612d1d565b810181811067ffffffffffffffff82111715612d8557612d84612d2e565b5b80604052505050565b6000612d986125fb565b9050612da48282612d5d565b919050565b600067ffffffffffffffff821115612dc457612dc3612d2e565b5b602082029050602081019050919050565b600080fd5b600080fd5b60038110612dec57600080fd5b50565b600081359050612dfe81612ddf565b92915050565b600067ffffffffffffffff821115612e1f57612e1e612d2e565b5b602082029050602081019050919050565b6000612e43612e3e84612e04565b612d8e565b90508083825260208201905060208402830185811115612e6657612e656126d4565b5b835b81811015612e8f5780612e7b8882612652565b845260208401935050602081019050612e68565b5050509392505050565b600082601f830112612eae57612ead6126ca565b5b8135612ebe848260208601612e30565b91505092915050565b600060608284031215612edd57612edc612dd5565b5b612ee76060612d8e565b90506000612ef784828501612778565b6000830152506020612f0b84828501612def565b602083015250604082013567ffffffffffffffff811115612f2f57612f2e612dda565b5b612f3b84828501612e99565b60408301525092915050565b6000612f5a612f5584612da9565b612d8e565b90508083825260208201905060208402830185811115612f7d57612f7c6126d4565b5b835b81811015612fc457803567ffffffffffffffff811115612fa257612fa16126ca565b5b808601612faf8982612ec7565b85526020850194505050602081019050612f7f565b5050509392505050565b6000612fdb368484612f47565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b600061302782613012565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361305957613058612fe3565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f536166654f776e61626c653a2073656e646572206d757374206265206e6f6d6960008201527f6e6565206f776e65720000000000000000000000000000000000000000000000602082015250565b60006130ef602983612558565b91506130fa82613093565b604082019050919050565b6000602082019050818103600083015261311e816130e2565b9050919050565b600060ff82169050919050565b600061313d82613125565b915060ff82036131505761314f612fe3565b5b600182019050919050565b7f4552433136353a20696e76616c696420696e7465726661636520696400000000600082015250565b6000613191601c83612558565b915061319c8261315b565b602082019050919050565b600060208201905081810360008301526131c081613184565b9050919050565b7f4469616d6f6e64426173653a206e6f2073656c6563746f72732073706563696660008201527f6965640000000000000000000000000000000000000000000000000000000000602082015250565b6000613223602383612558565b915061322e826131c7565b604082019050919050565b6000602082019050818103600083015261325281613216565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600381106132c5576132c4613259565b5b50565b60008190506132d6826132b4565b919050565b60006132e6826132c8565b9050919050565b6132f6816132db565b82525050565b600060608301600083015161331460008601826128ce565b50602083015161332760208601826132ed565b506040830151848203604086015261333f8282612a0e565b9150508091505092915050565b600061335883836132fc565b905092915050565b6000602082019050919050565b600061337882613288565b6133828185613293565b935083602082028501613394856132a4565b8060005b858110156133d057848403895281516133b1858261334c565b94506133bc83613360565b925060208a01995050600181019050613398565b50829750879550505050505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561341c578082015181840152602081019050613401565b60008484015250505050565b6000613433826133e2565b61343d81856133ed565b935061344d8185602086016133fe565b61345681612d1d565b840191505092915050565b6000606082019050818103600083015261347b818661336d565b905061348a6020830185612878565b818103604083015261349c8184613428565b9050949350505050565b7f4469616d6f6e64426173653a204144442074617267657420686173206e6f206360008201527f6f64650000000000000000000000000000000000000000000000000000000000602082015250565b6000613502602383612558565b915061350d826134a6565b604082019050919050565b60006020820190508181036000830152613531816134f5565b9050919050565b7f4469616d6f6e64426173653a2073656c6563746f7220616c726561647920616460008201527f6465640000000000000000000000000000000000000000000000000000000000602082015250565b6000613594602383612558565b915061359f82613538565b604082019050919050565b600060208201905081810360008301526135c381613587565b9050919050565b7f4469616d6f6e64426173653a205245504c41434520746172676574206861732060008201527f6e6f20636f646500000000000000000000000000000000000000000000000000602082015250565b6000613626602783612558565b9150613631826135ca565b604082019050919050565b6000602082019050818103600083015261365581613619565b9050919050565b7f4469616d6f6e64426173653a2073656c6563746f72206e6f7420666f756e6400600082015250565b6000613692601f83612558565b915061369d8261365c565b602082019050919050565b600060208201905081810360008301526136c181613685565b9050919050565b7f4469616d6f6e64426173653a2073656c6563746f7220697320696d6d7574616260008201527f6c65000000000000000000000000000000000000000000000000000000000000602082015250565b6000613724602283612558565b915061372f826136c8565b604082019050919050565b6000602082019050818103600083015261375381613717565b9050919050565b7f4469616d6f6e64426173653a205245504c41434520746172676574206973206960008201527f64656e746963616c000000000000000000000000000000000000000000000000602082015250565b60006137b6602883612558565b91506137c18261375a565b604082019050919050565b600060208201905081810360008301526137e5816137a9565b9050919050565b7f4469616d6f6e64426173653a2052454d4f564520746172676574206d7573742060008201527f6265207a65726f20616464726573730000000000000000000000000000000000602082015250565b6000613848602f83612558565b9150613853826137ec565b604082019050919050565b600060208201905081810360008301526138778161383b565b9050919050565b7f4469616d6f6e64426173653a20696e76616c696420696e697469616c697a617460008201527f696f6e20706172616d6574657273000000000000000000000000000000000000602082015250565b60006138da602e83612558565b91506138e58261387e565b604082019050919050565b60006020820190508181036000830152613909816138cd565b9050919050565b7f4469616d6f6e64426173653a20696e697469616c697a6174696f6e207461726760008201527f657420686173206e6f20636f6465000000000000000000000000000000000000602082015250565b600061396c602e83612558565b915061397782613910565b604082019050919050565b6000602082019050818103600083015261399b8161395f565b9050919050565b600081905092915050565b60006139b8826133e2565b6139c281856139a2565b93506139d28185602086016133fe565b80840191505092915050565b60006139ea82846139ad565b91508190509291505056fea2646970667358221220fc6cc68394243bdb345658eca6df1c8ce59ef6e74c820c19052fb19def3a5a3064736f6c63430008110033