60c06040526000600a60006101000a81548160ff0219169083151502179055506000600a60016101000a81548160ff0219169083151502179055503480156200004757600080fd5b506040518060400160405280600f81526020017f4261736564204e657572612043617400000000000000000000000000000000008152506040518060400160405280600681526020017f24426e43415400000000000000000000000000000000000000000000000000008152508160039081620000c5919062000be1565b508060049081620000d7919062000be1565b505050620000fa620000ee620004c960201b60201c565b620004d160201b60201c565b6000734752ba5dbc23f44d87826276bf6fd6b1c372ad249050620001268160016200059760201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001a6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001cc919062000d32565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000234573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025a919062000d32565b6040518363ffffffff1660e01b81526004016200027992919062000d75565b6020604051808303816000875af115801562000299573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002bf919062000d32565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200030760a05160016200059760201b60201c565b6000806000601990506000806c054f529ca52576bc689200000090506b50c783eb9b5c85f2a80000006007819055506b50c783eb9b5c85f2a80000006009819055506127106005826200035b919062000dd1565b62000367919062000e61565b60088190555084600c8190555083600d81905550600d54600c546200038d919062000e99565b600b8190555082600f8190555081601081905550601054600f54620003b3919062000e99565b600e81905550600e54601381905550735d24c5b22233b60d7a280fbee2f3ade919144b1b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004396200042b6200068160201b60201c565b6001620006ab60201b60201c565b6200044c306001620006ab60201b60201c565b6200046161dead6001620006ab60201b60201c565b62000483620004756200068160201b60201c565b60016200059760201b60201c565b620004963060016200059760201b60201c565b620004ab61dead60016200059760201b60201c565b620004bd3382620007e560201b60201c565b50505050505062001031565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620005a7620004c960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620005cd6200068160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000626576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200061d9062000f35565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620006bb620004c960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620006e16200068160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200073a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007319062000f35565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051620007d9919062000f74565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000857576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200084e9062000fe1565b60405180910390fd5b6200086b600083836200095d60201b60201c565b80600260008282546200087f919062000e99565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620008d6919062000e99565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200093d919062001014565b60405180910390a362000959600083836200096260201b60201c565b5050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620009e957607f821691505b602082108103620009ff57620009fe620009a1565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000a697fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000a2a565b62000a75868362000a2a565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000ac262000abc62000ab68462000a8d565b62000a97565b62000a8d565b9050919050565b6000819050919050565b62000ade8362000aa1565b62000af662000aed8262000ac9565b84845462000a37565b825550505050565b600090565b62000b0d62000afe565b62000b1a81848462000ad3565b505050565b5b8181101562000b425762000b3660008262000b03565b60018101905062000b20565b5050565b601f82111562000b915762000b5b8162000a05565b62000b668462000a1a565b8101602085101562000b76578190505b62000b8e62000b858562000a1a565b83018262000b1f565b50505b505050565b600082821c905092915050565b600062000bb66000198460080262000b96565b1980831691505092915050565b600062000bd1838362000ba3565b9150826002028217905092915050565b62000bec8262000967565b67ffffffffffffffff81111562000c085762000c0762000972565b5b62000c148254620009d0565b62000c2182828562000b46565b600060209050601f83116001811462000c59576000841562000c44578287015190505b62000c50858262000bc3565b86555062000cc0565b601f19841662000c698662000a05565b60005b8281101562000c935784890151825560018201915060208501945060208101905062000c6c565b8683101562000cb3578489015162000caf601f89168262000ba3565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000cfa8262000ccd565b9050919050565b62000d0c8162000ced565b811462000d1857600080fd5b50565b60008151905062000d2c8162000d01565b92915050565b60006020828403121562000d4b5762000d4a62000cc8565b5b600062000d5b8482850162000d1b565b91505092915050565b62000d6f8162000ced565b82525050565b600060408201905062000d8c600083018562000d64565b62000d9b602083018462000d64565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000dde8262000a8d565b915062000deb8362000a8d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000e275762000e2662000da2565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000e6e8262000a8d565b915062000e7b8362000a8d565b92508262000e8e5762000e8d62000e32565b5b828204905092915050565b600062000ea68262000a8d565b915062000eb38362000a8d565b925082820190508082111562000ece5762000ecd62000da2565b5b92915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000f1d60208362000ed4565b915062000f2a8262000ee5565b602082019050919050565b6000602082019050818103600083015262000f508162000f0e565b9050919050565b60008115159050919050565b62000f6e8162000f57565b82525050565b600060208201905062000f8b600083018462000f63565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000fc9601f8362000ed4565b915062000fd68262000f91565b602082019050919050565b6000602082019050818103600083015262000ffc8162000fba565b9050919050565b6200100e8162000a8d565b82525050565b60006020820190506200102b600083018462001003565b92915050565b60805160a0516140806200107a6000396000610bb10152600081816109d001528181612adb01528181612bbc01528181612be301528181612c7f0152612ca601526140806000f3fe6080604052600436106101fd5760003560e01c806375f0a8741161010d578063bbc0c742116100a0578063d85ba0631161006f578063d85ba06314610744578063dd62ed3e1461076f578063e2f45605146107ac578063f2fde38b146107d7578063f8b45b051461080057610204565b8063bbc0c74214610688578063c0246668146106b3578063c8c8ebe4146106dc578063d257b34f1461070757610204565b806396188399116100dc57806396188399146105bc578063a457c2d7146105e5578063a9059cbb14610622578063aacebbe31461065f57610204565b806375f0a874146105245780638a8c523c1461054f5780638da5cb5b1461056657806395d89b411461059157610204565b806339509351116101905780636a486a8e1161015f5780636a486a8e146104515780636ddd17131461047c57806370a08231146104a7578063715018a6146104e45780637571336a146104fb57610204565b8063395093511461038357806349bd5a5e146103c05780634fbee193146103eb57806366ca9b831461042857610204565b806318160ddd116101cc57806318160ddd146102c557806323b872dd146102f057806327c8f8351461032d578063313ce5671461035857610204565b806302dbd8f81461020957806306fdde0314610232578063095ea7b31461025d5780631694505e1461029a57610204565b3661020457005b600080fd5b34801561021557600080fd5b50610230600480360381019061022b9190612d90565b61082b565b005b34801561023e57600080fd5b5061024761091e565b6040516102549190612e60565b60405180910390f35b34801561026957600080fd5b50610284600480360381019061027f9190612ee0565b6109b0565b6040516102919190612f3b565b60405180910390f35b3480156102a657600080fd5b506102af6109ce565b6040516102bc9190612fb5565b60405180910390f35b3480156102d157600080fd5b506102da6109f2565b6040516102e79190612fdf565b60405180910390f35b3480156102fc57600080fd5b5061031760048036038101906103129190612ffa565b6109fc565b6040516103249190612f3b565b60405180910390f35b34801561033957600080fd5b50610342610af4565b60405161034f919061305c565b60405180910390f35b34801561036457600080fd5b5061036d610afa565b60405161037a9190613093565b60405180910390f35b34801561038f57600080fd5b506103aa60048036038101906103a59190612ee0565b610b03565b6040516103b79190612f3b565b60405180910390f35b3480156103cc57600080fd5b506103d5610baf565b6040516103e2919061305c565b60405180910390f35b3480156103f757600080fd5b50610412600480360381019061040d91906130ae565b610bd3565b60405161041f9190612f3b565b60405180910390f35b34801561043457600080fd5b5061044f600480360381019061044a9190612d90565b610c29565b005b34801561045d57600080fd5b50610466610d13565b6040516104739190612fdf565b60405180910390f35b34801561048857600080fd5b50610491610d19565b60405161049e9190612f3b565b60405180910390f35b3480156104b357600080fd5b506104ce60048036038101906104c991906130ae565b610d2c565b6040516104db9190612fdf565b60405180910390f35b3480156104f057600080fd5b506104f9610d74565b005b34801561050757600080fd5b50610522600480360381019061051d9190613107565b610dfc565b005b34801561053057600080fd5b50610539610ed3565b604051610546919061305c565b60405180910390f35b34801561055b57600080fd5b50610564610ef9565b005b34801561057257600080fd5b5061057b610fad565b604051610588919061305c565b60405180910390f35b34801561059d57600080fd5b506105a6610fd7565b6040516105b39190612e60565b60405180910390f35b3480156105c857600080fd5b506105e360048036038101906105de9190612d90565b611069565b005b3480156105f157600080fd5b5061060c60048036038101906106079190612ee0565b611209565b6040516106199190612f3b565b60405180910390f35b34801561062e57600080fd5b5061064960048036038101906106449190612ee0565b6112f4565b6040516106569190612f3b565b60405180910390f35b34801561066b57600080fd5b50610686600480360381019061068191906130ae565b611312565b005b34801561069457600080fd5b5061069d61144e565b6040516106aa9190612f3b565b60405180910390f35b3480156106bf57600080fd5b506106da60048036038101906106d59190613107565b611461565b005b3480156106e857600080fd5b506106f1611586565b6040516106fe9190612fdf565b60405180910390f35b34801561071357600080fd5b5061072e60048036038101906107299190613147565b61158c565b60405161073b9190612f3b565b60405180910390f35b34801561075057600080fd5b506107596116e1565b6040516107669190612fdf565b60405180910390f35b34801561077b57600080fd5b5061079660048036038101906107919190613174565b6116e7565b6040516107a39190612fdf565b60405180910390f35b3480156107b857600080fd5b506107c161176e565b6040516107ce9190612fdf565b60405180910390f35b3480156107e357600080fd5b506107fe60048036038101906107f991906130ae565b611774565b005b34801561080c57600080fd5b5061081561186b565b6040516108229190612fdf565b60405180910390f35b610833611871565b73ffffffffffffffffffffffffffffffffffffffff16610851610fad565b73ffffffffffffffffffffffffffffffffffffffff16146108a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089e90613200565b60405180910390fd5b81600f8190555080601081905550601054600f546108c5919061324f565b600e81905550600e546013819055506023600e54111561091a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610911906132cf565b60405180910390fd5b5050565b60606003805461092d9061331e565b80601f01602080910402602001604051908101604052809291908181526020018280546109599061331e565b80156109a65780601f1061097b576101008083540402835291602001916109a6565b820191906000526020600020905b81548152906001019060200180831161098957829003601f168201915b5050505050905090565b60006109c46109bd611871565b8484611879565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b6000610a09848484611a42565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a54611871565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610ad4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acb906133c1565b60405180910390fd5b610ae885610ae0611871565b858403611879565b60019150509392505050565b61dead81565b60006012905090565b6000610ba5610b10611871565b848460016000610b1e611871565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ba0919061324f565b611879565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610c31611871565b73ffffffffffffffffffffffffffffffffffffffff16610c4f610fad565b73ffffffffffffffffffffffffffffffffffffffff1614610ca5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9c90613200565b60405180910390fd5b81600c8190555080600d81905550600d54600c54610cc3919061324f565b600b819055506023600b541115610d0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d06906132cf565b60405180910390fd5b5050565b600e5481565b600a60019054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d7c611871565b73ffffffffffffffffffffffffffffffffffffffff16610d9a610fad565b73ffffffffffffffffffffffffffffffffffffffff1614610df0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de790613200565b60405180910390fd5b610dfa600061249e565b565b610e04611871565b73ffffffffffffffffffffffffffffffffffffffff16610e22610fad565b73ffffffffffffffffffffffffffffffffffffffff1614610e78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6f90613200565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610f01611871565b73ffffffffffffffffffffffffffffffffffffffff16610f1f610fad565b73ffffffffffffffffffffffffffffffffffffffff1614610f75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6c90613200565b60405180910390fd5b6001600a60006101000a81548160ff0219169083151502179055506001600a60016101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610fe69061331e565b80601f01602080910402602001604051908101604052809291908181526020018280546110129061331e565b801561105f5780601f106110345761010080835404028352916020019161105f565b820191906000526020600020905b81548152906001019060200180831161104257829003601f168201915b5050505050905090565b611071611871565b73ffffffffffffffffffffffffffffffffffffffff1661108f610fad565b73ffffffffffffffffffffffffffffffffffffffff16146110e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110dc90613200565b60405180910390fd5b670de0b6b3a76400006103e860056110fb6109f2565b61110591906133e1565b61110f919061346a565b611119919061346a565b82101561115b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111529061350d565b60405180910390fd5b670de0b6b3a76400006103e860056111716109f2565b61117b91906133e1565b611185919061346a565b61118f919061346a565b8110156111d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c89061359f565b60405180910390fd5b670de0b6b3a7640000816111e591906133e1565b600981905550670de0b6b3a7640000826111ff91906133e1565b6007819055505050565b60008060016000611218611871565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156112d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cc90613631565b60405180910390fd5b6112e96112e0611871565b85858403611879565b600191505092915050565b6000611308611301611871565b8484611a42565b6001905092915050565b61131a611871565b73ffffffffffffffffffffffffffffffffffffffff16611338610fad565b73ffffffffffffffffffffffffffffffffffffffff161461138e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138590613200565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a60009054906101000a900460ff1681565b611469611871565b73ffffffffffffffffffffffffffffffffffffffff16611487610fad565b73ffffffffffffffffffffffffffffffffffffffff16146114dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d490613200565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161157a9190612f3b565b60405180910390a25050565b60075481565b6000611596611871565b73ffffffffffffffffffffffffffffffffffffffff166115b4610fad565b73ffffffffffffffffffffffffffffffffffffffff161461160a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160190613200565b60405180910390fd5b620186a060016116186109f2565b61162291906133e1565b61162c919061346a565b82101561166e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611665906136c3565b60405180910390fd5b6103e8600561167b6109f2565b61168591906133e1565b61168f919061346a565b8211156116d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c890613755565b60405180910390fd5b8160088190555060019050919050565b600b5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60085481565b61177c611871565b73ffffffffffffffffffffffffffffffffffffffff1661179a610fad565b73ffffffffffffffffffffffffffffffffffffffff16146117f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e790613200565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361185f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611856906137e7565b60405180910390fd5b6118688161249e565b50565b60095481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118df90613879565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611957576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194e9061390b565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a359190612fdf565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ab1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa89061399d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1790613a2f565b60405180910390fd5b60008103611b3957611b3483836000612564565b612499565b611b41610fad565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611baf5750611b7f610fad565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611be85750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611c22575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611c3b5750600560149054906101000a900460ff16155b1561201e57600a60009054906101000a900460ff16611d3557601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611cf55750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2b90613a9b565b60405180910390fd5b5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611dd85750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e7f57600754811115611e22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1990613b2d565b60405180910390fd5b600954611e2e83610d2c565b82611e39919061324f565b1115611e7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7190613b99565b60405180910390fd5b61201d565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611f225750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f7157600754811115611f6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6390613c2b565b60405180910390fd5b61201c565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661201b57600954611fce83610d2c565b82611fd9919061324f565b111561201a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201190613b99565b60405180910390fd5b5b5b5b5b600061202930610d2c565b90506000600854821015905080801561204e5750600a60019054906101000a900460ff165b80156120675750600560149054906101000a900460ff16155b80156120bd5750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121135750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121695750601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121ad576001600560146101000a81548160ff0219169083151502179055506121916127e3565b6000600560146101000a81548160ff0219169083151502179055505b6000600560149054906101000a900460ff16159050601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122635750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561226d57600090505b6000811561248057601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156122d057506000600e54115b1561236a576122fd60646122ef600e54886129f090919063ffffffff16565b612a0690919063ffffffff16565b9050600e546010548261231091906133e1565b61231a919061346a565b6012600082825461232b919061324f565b92505081905550600e54600f548261234391906133e1565b61234d919061346a565b6011600082825461235e919061324f565b9250508190555061245c565b601660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156123c557506000600b54115b1561245b576123f260646123e4600b54886129f090919063ffffffff16565b612a0690919063ffffffff16565b9050600b54600d548261240591906133e1565b61240f919061346a565b60126000828254612420919061324f565b92505081905550600b54600c548261243891906133e1565b612442919061346a565b60116000828254612453919061324f565b925050819055505b5b600081111561247157612470873083612564565b5b808561247d9190613c4b565b94505b61248b878787612564565b601354600e81905550505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036125d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ca9061399d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612642576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161263990613a2f565b60405180910390fd5b61264d838383612a1c565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156126d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ca90613cf1565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612766919061324f565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127ca9190612fdf565b60405180910390a36127dd848484612a21565b50505050565b60006127ee30610d2c565b90506000601154601254612802919061324f565b90506000808314806128145750600082145b15612821575050506129ee565b601460085461283091906133e1565b83111561284957601460085461284691906133e1565b92505b60006002836012548661285c91906133e1565b612866919061346a565b612870919061346a565b905060006128878286612a2690919063ffffffff16565b9050600047905061289782612a3c565b60006128ac8247612a2690919063ffffffff16565b905060006128d7876128c9601154856129f090919063ffffffff16565b612a0690919063ffffffff16565b9050600081836128e79190613c4b565b9050600060128190555060006011819055506000861180156129095750600081115b15612956576129188682612c79565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561858260125460405161294d93929190613d11565b60405180910390a15b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161299c90613d79565b60006040518083038185875af1925050503d80600081146129d9576040519150601f19603f3d011682016040523d82523d6000602084013e6129de565b606091505b5050809750505050505050505050505b565b600081836129fe91906133e1565b905092915050565b60008183612a14919061346a565b905092915050565b505050565b505050565b60008183612a349190613c4b565b905092915050565b6000600267ffffffffffffffff811115612a5957612a58613d8e565b5b604051908082528060200260200182016040528015612a875781602001602082028036833780820191505090505b5090503081600081518110612a9f57612a9e613dbd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b689190613e01565b81600181518110612b7c57612b7b613dbd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612be1307f000000000000000000000000000000000000000000000000000000000000000084611879565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612c43959493929190613f27565b600060405180830381600087803b158015612c5d57600080fd5b505af1158015612c71573d6000803e3d6000fd5b505050505050565b612ca4307f000000000000000000000000000000000000000000000000000000000000000084611879565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b8152600401612d0b96959493929190613f81565b60606040518083038185885af1158015612d29573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612d4e9190613ff7565b5050505050565b600080fd5b6000819050919050565b612d6d81612d5a565b8114612d7857600080fd5b50565b600081359050612d8a81612d64565b92915050565b60008060408385031215612da757612da6612d55565b5b6000612db585828601612d7b565b9250506020612dc685828601612d7b565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612e0a578082015181840152602081019050612def565b60008484015250505050565b6000601f19601f8301169050919050565b6000612e3282612dd0565b612e3c8185612ddb565b9350612e4c818560208601612dec565b612e5581612e16565b840191505092915050565b60006020820190508181036000830152612e7a8184612e27565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ead82612e82565b9050919050565b612ebd81612ea2565b8114612ec857600080fd5b50565b600081359050612eda81612eb4565b92915050565b60008060408385031215612ef757612ef6612d55565b5b6000612f0585828601612ecb565b9250506020612f1685828601612d7b565b9150509250929050565b60008115159050919050565b612f3581612f20565b82525050565b6000602082019050612f506000830184612f2c565b92915050565b6000819050919050565b6000612f7b612f76612f7184612e82565b612f56565b612e82565b9050919050565b6000612f8d82612f60565b9050919050565b6000612f9f82612f82565b9050919050565b612faf81612f94565b82525050565b6000602082019050612fca6000830184612fa6565b92915050565b612fd981612d5a565b82525050565b6000602082019050612ff46000830184612fd0565b92915050565b60008060006060848603121561301357613012612d55565b5b600061302186828701612ecb565b935050602061303286828701612ecb565b925050604061304386828701612d7b565b9150509250925092565b61305681612ea2565b82525050565b6000602082019050613071600083018461304d565b92915050565b600060ff82169050919050565b61308d81613077565b82525050565b60006020820190506130a86000830184613084565b92915050565b6000602082840312156130c4576130c3612d55565b5b60006130d284828501612ecb565b91505092915050565b6130e481612f20565b81146130ef57600080fd5b50565b600081359050613101816130db565b92915050565b6000806040838503121561311e5761311d612d55565b5b600061312c85828601612ecb565b925050602061313d858286016130f2565b9150509250929050565b60006020828403121561315d5761315c612d55565b5b600061316b84828501612d7b565b91505092915050565b6000806040838503121561318b5761318a612d55565b5b600061319985828601612ecb565b92505060206131aa85828601612ecb565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006131ea602083612ddb565b91506131f5826131b4565b602082019050919050565b60006020820190508181036000830152613219816131dd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061325a82612d5a565b915061326583612d5a565b925082820190508082111561327d5761327c613220565b5b92915050565b7f4d757374206b656570206665657320617420333525206f72206c657373000000600082015250565b60006132b9601d83612ddb565b91506132c482613283565b602082019050919050565b600060208201905081810360008301526132e8816132ac565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061333657607f821691505b602082108103613349576133486132ef565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006133ab602883612ddb565b91506133b68261334f565b604082019050919050565b600060208201905081810360008301526133da8161339e565b9050919050565b60006133ec82612d5a565b91506133f783612d5a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156134305761342f613220565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061347582612d5a565b915061348083612d5a565b9250826134905761348f61343b565b5b828204905092915050565b7f43616e6e6f7420736574206d617854786e206c6f776572207468616e20302e3560008201527f2500000000000000000000000000000000000000000000000000000000000000602082015250565b60006134f7602183612ddb565b91506135028261349b565b604082019050919050565b60006020820190508181036000830152613526816134ea565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b6000613589602483612ddb565b91506135948261352d565b604082019050919050565b600060208201905081810360008301526135b88161357c565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061361b602583612ddb565b9150613626826135bf565b604082019050919050565b6000602082019050818103600083015261364a8161360e565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b60006136ad603583612ddb565b91506136b882613651565b604082019050919050565b600060208201905081810360008301526136dc816136a0565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b600061373f603483612ddb565b915061374a826136e3565b604082019050919050565b6000602082019050818103600083015261376e81613732565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006137d1602683612ddb565b91506137dc82613775565b604082019050919050565b60006020820190508181036000830152613800816137c4565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613863602483612ddb565b915061386e82613807565b604082019050919050565b6000602082019050818103600083015261389281613856565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006138f5602283612ddb565b915061390082613899565b604082019050919050565b60006020820190508181036000830152613924816138e8565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613987602583612ddb565b91506139928261392b565b604082019050919050565b600060208201905081810360008301526139b68161397a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613a19602383612ddb565b9150613a24826139bd565b604082019050919050565b60006020820190508181036000830152613a4881613a0c565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613a85601683612ddb565b9150613a9082613a4f565b602082019050919050565b60006020820190508181036000830152613ab481613a78565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613b17603583612ddb565b9150613b2282613abb565b604082019050919050565b60006020820190508181036000830152613b4681613b0a565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613b83601383612ddb565b9150613b8e82613b4d565b602082019050919050565b60006020820190508181036000830152613bb281613b76565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613c15603683612ddb565b9150613c2082613bb9565b604082019050919050565b60006020820190508181036000830152613c4481613c08565b9050919050565b6000613c5682612d5a565b9150613c6183612d5a565b9250828203905081811115613c7957613c78613220565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613cdb602683612ddb565b9150613ce682613c7f565b604082019050919050565b60006020820190508181036000830152613d0a81613cce565b9050919050565b6000606082019050613d266000830186612fd0565b613d336020830185612fd0565b613d406040830184612fd0565b949350505050565b600081905092915050565b50565b6000613d63600083613d48565b9150613d6e82613d53565b600082019050919050565b6000613d8482613d56565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613dfb81612eb4565b92915050565b600060208284031215613e1757613e16612d55565b5b6000613e2584828501613dec565b91505092915050565b6000819050919050565b6000613e53613e4e613e4984613e2e565b612f56565b612d5a565b9050919050565b613e6381613e38565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613e9e81612ea2565b82525050565b6000613eb08383613e95565b60208301905092915050565b6000602082019050919050565b6000613ed482613e69565b613ede8185613e74565b9350613ee983613e85565b8060005b83811015613f1a578151613f018882613ea4565b9750613f0c83613ebc565b925050600181019050613eed565b5085935050505092915050565b600060a082019050613f3c6000830188612fd0565b613f496020830187613e5a565b8181036040830152613f5b8186613ec9565b9050613f6a606083018561304d565b613f776080830184612fd0565b9695505050505050565b600060c082019050613f96600083018961304d565b613fa36020830188612fd0565b613fb06040830187613e5a565b613fbd6060830186613e5a565b613fca608083018561304d565b613fd760a0830184612fd0565b979650505050505050565b600081519050613ff181612d64565b92915050565b6000806000606084860312156140105761400f612d55565b5b600061401e86828701613fe2565b935050602061402f86828701613fe2565b925050604061404086828701613fe2565b915050925092509256fea26469706673582212200c26f9c2cf5dd080214b1f8cf8b66db37ab21cdac7b37b00f4c86472603e455c64736f6c63430008100033