60806040526001600e5573521f9c7505005cfa19a8e5786a9c3c9c9f5e6f42601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200006b57600080fd5b506040516200461338038062004613833981810160405281019062000091919062000442565b6040518060400160405280600c81526020017f57697a617264734e6f756e7300000000000000000000000000000000000000008152506040518060400160405280600c81526020017f57697a617264734e6f756e73000000000000000000000000000000000000000081525081600090805190602001906200011592919062000314565b5080600190805190602001906200012e92919062000314565b50505062000151620001456200017160201b60201c565b6200017960201b60201c565b6001600b819055506200016a816200023f60201b60201c565b506200069a565b600033905090565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6200024f6200017160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000275620002ea60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620002ce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002c590620004ba565b60405180910390fd5b80600c9080519060200190620002e692919062000314565b5050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b828054620003229062000582565b90600052602060002090601f01602090048101928262000346576000855562000392565b82601f106200036157805160ff191683800117855562000392565b8280016001018555821562000392579182015b828111156200039157825182559160200191906001019062000374565b5b509050620003a19190620003a5565b5090565b5b80821115620003c0576000816000905550600101620003a6565b5090565b6000620003db620003d58462000505565b620004dc565b905082815260208101848484011115620003fa57620003f962000651565b5b620004078482856200054c565b509392505050565b600082601f8301126200042757620004266200064c565b5b815162000439848260208601620003c4565b91505092915050565b6000602082840312156200045b576200045a6200065b565b5b600082015167ffffffffffffffff8111156200047c576200047b62000656565b5b6200048a848285016200040f565b91505092915050565b6000620004a26020836200053b565b9150620004af8262000671565b602082019050919050565b60006020820190508181036000830152620004d58162000493565b9050919050565b6000620004e8620004fb565b9050620004f68282620005b8565b919050565b6000604051905090565b600067ffffffffffffffff8211156200052357620005226200061d565b5b6200052e8262000660565b9050602081019050919050565b600082825260208201905092915050565b60005b838110156200056c5780820151818401526020810190506200054f565b838111156200057c576000848401525b50505050565b600060028204905060018216806200059b57607f821691505b60208210811415620005b257620005b1620005ee565b5b50919050565b620005c38262000660565b810181811067ffffffffffffffff82111715620005e557620005e46200061d565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b613f6980620006aa6000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c80636352211e116100f9578063a22cb46511610097578063ca0b4d7b11610071578063ca0b4d7b146104f1578063e6afcd131461050d578063e985e9c51461052b578063f2fde38b1461055b576101c4565b8063a22cb46514610489578063b88d4fde146104a5578063c87b56dd146104c1576101c4565b8063715018a6116100d3578063715018a6146104275780638da5cb5b1461043157806395d89b411461044f5780639feab12f1461046d576101c4565b80636352211e146103a95780636c0360eb146103d957806370a08231146103f7576101c4565b80632f745c59116101665780633ccfd60b116101405780633ccfd60b1461033757806342842e0e146103415780634f6ccce71461035d57806355f804b31461038d576101c4565b80632f745c59146102cd57806332cb6b0c146102fd578063379607f51461031b576101c4565b8063095ea7b3116101a2578063095ea7b31461024757806318160ddd146102635780631e7269c51461028157806323b872dd146102b1576101c4565b806301ffc9a7146101c957806306fdde03146101f9578063081812fc14610217575b600080fd5b6101e360048036038101906101de9190612c0f565b610577565b6040516101f0919061315f565b60405180910390f35b610201610589565b60405161020e919061317a565b60405180910390f35b610231600480360381019061022c9190612cb2565b61061b565b60405161023e91906130f8565b60405180910390f35b610261600480360381019061025c9190612ba2565b6106a0565b005b61026b6107b8565b604051610278919061347c565b60405180910390f35b61029b600480360381019061029691906129f2565b6107c5565b6040516102a8919061347c565b60405180910390f35b6102cb60048036038101906102c69190612a8c565b6107dd565b005b6102e760048036038101906102e29190612ba2565b61083d565b6040516102f4919061347c565b60405180910390f35b6103056108e2565b604051610312919061347c565b60405180910390f35b61033560048036038101906103309190612cb2565b6108e8565b005b61033f610bd8565b005b61035b60048036038101906103569190612a8c565b610c9d565b005b61037760048036038101906103729190612cb2565b610cbd565b604051610384919061347c565b60405180910390f35b6103a760048036038101906103a29190612c69565b610d2e565b005b6103c360048036038101906103be9190612cb2565b610dc4565b6040516103d091906130f8565b60405180910390f35b6103e1610e76565b6040516103ee919061317a565b60405180910390f35b610411600480360381019061040c91906129f2565b610f08565b60405161041e919061347c565b60405180910390f35b61042f610fc0565b005b610439611048565b60405161044691906130f8565b60405180910390f35b610457611072565b604051610464919061317a565b60405180910390f35b61048760048036038101906104829190612cb2565b611104565b005b6104a3600480360381019061049e9190612b62565b61118a565b005b6104bf60048036038101906104ba9190612adf565b61130b565b005b6104db60048036038101906104d69190612cb2565b61136d565b6040516104e8919061317a565b60405180910390f35b61050b60048036038101906105069190612be2565b611414565b005b6105156114fd565b604051610522919061347c565b60405180910390f35b61054560048036038101906105409190612a4c565b611503565b604051610552919061315f565b60405180910390f35b610575600480360381019061057091906129f2565b611597565b005b60006105828261168f565b9050919050565b606060008054610598906136d2565b80601f01602080910402602001604051908101604052809291908181526020018280546105c4906136d2565b80156106115780601f106105e657610100808354040283529160200191610611565b820191906000526020600020905b8154815290600101906020018083116105f457829003601f168201915b5050505050905090565b600061062682611709565b610665576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065c9061335c565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006106ab82610dc4565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561071c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610713906133dc565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661073b611775565b73ffffffffffffffffffffffffffffffffffffffff16148061076a575061076981610764611775565b611503565b5b6107a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a0906132dc565b60405180910390fd5b6107b3838361177d565b505050565b6000600880549050905090565b600f6020528060005260406000206000915090505481565b6107ee6107e8611775565b82611836565b61082d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610824906133fc565b60405180910390fd5b610838838383611914565b505050565b600061084883610f08565b8210610889576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610880906131bc565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b6109c481565b6002600b54141561092e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109259061345c565b60405180910390fd5b6002600b819055506109c46109416107b8565b10610981576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109789061321c565b60405180910390fd5b600d60009054906101000a900460ff16156109d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c89061321c565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b8152600401610a43919061347c565b60206040518083038186803b158015610a5b57600080fd5b505afa158015610a6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a939190612a1f565b73ffffffffffffffffffffffffffffffffffffffff1614610ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae09061319c565b60405180910390fd5b600e54600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410610b6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b639061343c565b60405180910390fd5b6001600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610bbc9190613561565b92505081905550610bcd3382611b70565b6001600b8190555050565b610be0611775565b73ffffffffffffffffffffffffffffffffffffffff16610bfe611048565b73ffffffffffffffffffffffffffffffffffffffff1614610c54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4b9061337c565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610c9a573d6000803e3d6000fd5b50565b610cb88383836040518060200160405280600081525061130b565b505050565b6000610cc76107b8565b8210610d08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cff9061341c565b60405180910390fd5b60088281548110610d1c57610d1b61386b565b5b90600052602060002001549050919050565b610d36611775565b73ffffffffffffffffffffffffffffffffffffffff16610d54611048565b73ffffffffffffffffffffffffffffffffffffffff1614610daa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da19061337c565b60405180910390fd5b80600c9080519060200190610dc09291906127f1565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610e6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e649061331c565b60405180910390fd5b80915050919050565b6060600c8054610e85906136d2565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb1906136d2565b8015610efe5780601f10610ed357610100808354040283529160200191610efe565b820191906000526020600020905b815481529060010190602001808311610ee157829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f70906132fc565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610fc8611775565b73ffffffffffffffffffffffffffffffffffffffff16610fe6611048565b73ffffffffffffffffffffffffffffffffffffffff161461103c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110339061337c565b60405180910390fd5b6110466000611b8e565b565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054611081906136d2565b80601f01602080910402602001604051908101604052809291908181526020018280546110ad906136d2565b80156110fa5780601f106110cf576101008083540402835291602001916110fa565b820191906000526020600020905b8154815290600101906020018083116110dd57829003601f168201915b5050505050905090565b61110c611775565b73ffffffffffffffffffffffffffffffffffffffff1661112a611048565b73ffffffffffffffffffffffffffffffffffffffff1614611180576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111779061337c565b60405180910390fd5b80600e8190555050565b611192611775565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f79061327c565b60405180910390fd5b806005600061120d611775565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166112ba611775565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516112ff919061315f565b60405180910390a35050565b61131c611316611775565b83611836565b61135b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611352906133fc565b60405180910390fd5b61136784848484611c54565b50505050565b606061137882611709565b6113b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ae906133bc565b60405180910390fd5b60006113c1611cb0565b905060008151116113e1576040518060200160405280600081525061140c565b806113eb84611d42565b6040516020016113fc9291906130d4565b6040516020818303038152906040525b915050919050565b61141c611775565b73ffffffffffffffffffffffffffffffffffffffff1661143a611048565b73ffffffffffffffffffffffffffffffffffffffff1614611490576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114879061337c565b60405180910390fd5b600d60009054906101000a900460ff16156114e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d7906132bc565b60405180910390fd5b80600d60006101000a81548160ff02191690831515021790555050565b600e5481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61159f611775565b73ffffffffffffffffffffffffffffffffffffffff166115bd611048565b73ffffffffffffffffffffffffffffffffffffffff1614611613576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160a9061337c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611683576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167a906131fc565b60405180910390fd5b61168c81611b8e565b50565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611702575061170182611ea3565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166117f083610dc4565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061184182611709565b611880576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118779061329c565b60405180910390fd5b600061188b83610dc4565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806118fa57508373ffffffffffffffffffffffffffffffffffffffff166118e28461061b565b73ffffffffffffffffffffffffffffffffffffffff16145b8061190b575061190a8185611503565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661193482610dc4565b73ffffffffffffffffffffffffffffffffffffffff161461198a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119819061339c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f19061325c565b60405180910390fd5b611a05838383611f85565b611a1060008261177d565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a6091906135e8565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ab79190613561565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b611b8a828260405180602001604052806000815250611f95565b5050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611c5f848484611914565b611c6b84848484611ff0565b611caa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca1906131dc565b60405180910390fd5b50505050565b6060600c8054611cbf906136d2565b80601f0160208091040260200160405190810160405280929190818152602001828054611ceb906136d2565b8015611d385780601f10611d0d57610100808354040283529160200191611d38565b820191906000526020600020905b815481529060010190602001808311611d1b57829003601f168201915b5050505050905090565b60606000821415611d8a576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611e9e565b600082905060005b60008214611dbc578080611da590613735565b915050600a82611db591906135b7565b9150611d92565b60008167ffffffffffffffff811115611dd857611dd761389a565b5b6040519080825280601f01601f191660200182016040528015611e0a5781602001600182028036833780820191505090505b5090505b60008514611e9757600182611e2391906135e8565b9150600a85611e32919061377e565b6030611e3e9190613561565b60f81b818381518110611e5457611e5361386b565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611e9091906135b7565b9450611e0e565b8093505050505b919050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611f6e57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611f7e5750611f7d82612187565b5b9050919050565b611f908383836121f1565b505050565b611f9f8383612305565b611fac6000848484611ff0565b611feb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe2906131dc565b60405180910390fd5b505050565b60006120118473ffffffffffffffffffffffffffffffffffffffff166124d3565b1561217a578373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261203a611775565b8786866040518563ffffffff1660e01b815260040161205c9493929190613113565b602060405180830381600087803b15801561207657600080fd5b505af19250505080156120a757506040513d601f19601f820116820180604052508101906120a49190612c3c565b60015b61212a573d80600081146120d7576040519150601f19603f3d011682016040523d82523d6000602084013e6120dc565b606091505b50600081511415612122576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612119906131dc565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505061217f565b600190505b949350505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6121fc8383836124e6565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561223f5761223a816124eb565b61227e565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461227d5761227c8382612534565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156122c1576122bc816126a1565b612300565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146122ff576122fe8282612772565b5b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612375576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236c9061333c565b60405180910390fd5b61237e81611709565b156123be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b59061323c565b60405180910390fd5b6123ca60008383611f85565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461241a9190613561565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b6000600161254184610f08565b61254b91906135e8565b9050600060076000848152602001908152602001600020549050818114612630576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b600060016008805490506126b591906135e8565b90506000600960008481526020019081526020016000205490506000600883815481106126e5576126e461386b565b5b9060005260206000200154905080600883815481106127075761270661386b565b5b9060005260206000200181905550816009600083815260200190815260200160002081905550600960008581526020019081526020016000206000905560088054806127565761275561383c565b5b6001900381819060005260206000200160009055905550505050565b600061277d83610f08565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b8280546127fd906136d2565b90600052602060002090601f01602090048101928261281f5760008555612866565b82601f1061283857805160ff1916838001178555612866565b82800160010185558215612866579182015b8281111561286557825182559160200191906001019061284a565b5b5090506128739190612877565b5090565b5b80821115612890576000816000905550600101612878565b5090565b60006128a76128a2846134bc565b613497565b9050828152602081018484840111156128c3576128c26138ce565b5b6128ce848285613690565b509392505050565b60006128e96128e4846134ed565b613497565b905082815260208101848484011115612905576129046138ce565b5b612910848285613690565b509392505050565b60008135905061292781613ed7565b92915050565b60008151905061293c81613ed7565b92915050565b60008135905061295181613eee565b92915050565b60008135905061296681613f05565b92915050565b60008151905061297b81613f05565b92915050565b600082601f830112612996576129956138c9565b5b81356129a6848260208601612894565b91505092915050565b600082601f8301126129c4576129c36138c9565b5b81356129d48482602086016128d6565b91505092915050565b6000813590506129ec81613f1c565b92915050565b600060208284031215612a0857612a076138d8565b5b6000612a1684828501612918565b91505092915050565b600060208284031215612a3557612a346138d8565b5b6000612a438482850161292d565b91505092915050565b60008060408385031215612a6357612a626138d8565b5b6000612a7185828601612918565b9250506020612a8285828601612918565b9150509250929050565b600080600060608486031215612aa557612aa46138d8565b5b6000612ab386828701612918565b9350506020612ac486828701612918565b9250506040612ad5868287016129dd565b9150509250925092565b60008060008060808587031215612af957612af86138d8565b5b6000612b0787828801612918565b9450506020612b1887828801612918565b9350506040612b29878288016129dd565b925050606085013567ffffffffffffffff811115612b4a57612b496138d3565b5b612b5687828801612981565b91505092959194509250565b60008060408385031215612b7957612b786138d8565b5b6000612b8785828601612918565b9250506020612b9885828601612942565b9150509250929050565b60008060408385031215612bb957612bb86138d8565b5b6000612bc785828601612918565b9250506020612bd8858286016129dd565b9150509250929050565b600060208284031215612bf857612bf76138d8565b5b6000612c0684828501612942565b91505092915050565b600060208284031215612c2557612c246138d8565b5b6000612c3384828501612957565b91505092915050565b600060208284031215612c5257612c516138d8565b5b6000612c608482850161296c565b91505092915050565b600060208284031215612c7f57612c7e6138d8565b5b600082013567ffffffffffffffff811115612c9d57612c9c6138d3565b5b612ca9848285016129af565b91505092915050565b600060208284031215612cc857612cc76138d8565b5b6000612cd6848285016129dd565b91505092915050565b612ce88161361c565b82525050565b612cf78161362e565b82525050565b6000612d088261351e565b612d128185613534565b9350612d2281856020860161369f565b612d2b816138dd565b840191505092915050565b6000612d4182613529565b612d4b8185613545565b9350612d5b81856020860161369f565b612d64816138dd565b840191505092915050565b6000612d7a82613529565b612d848185613556565b9350612d9481856020860161369f565b80840191505092915050565b6000612dad601083613545565b9150612db8826138ee565b602082019050919050565b6000612dd0602b83613545565b9150612ddb82613917565b604082019050919050565b6000612df3603283613545565b9150612dfe82613966565b604082019050919050565b6000612e16602683613545565b9150612e21826139b5565b604082019050919050565b6000612e39601183613545565b9150612e4482613a04565b602082019050919050565b6000612e5c601c83613545565b9150612e6782613a2d565b602082019050919050565b6000612e7f602483613545565b9150612e8a82613a56565b604082019050919050565b6000612ea2601983613545565b9150612ead82613aa5565b602082019050919050565b6000612ec5602c83613545565b9150612ed082613ace565b604082019050919050565b6000612ee8602683613545565b9150612ef382613b1d565b604082019050919050565b6000612f0b603883613545565b9150612f1682613b6c565b604082019050919050565b6000612f2e602a83613545565b9150612f3982613bbb565b604082019050919050565b6000612f51602983613545565b9150612f5c82613c0a565b604082019050919050565b6000612f74602083613545565b9150612f7f82613c59565b602082019050919050565b6000612f97602c83613545565b9150612fa282613c82565b604082019050919050565b6000612fba602083613545565b9150612fc582613cd1565b602082019050919050565b6000612fdd602983613545565b9150612fe882613cfa565b604082019050919050565b6000613000602f83613545565b915061300b82613d49565b604082019050919050565b6000613023602183613545565b915061302e82613d98565b604082019050919050565b6000613046603183613545565b915061305182613de7565b604082019050919050565b6000613069602c83613545565b915061307482613e36565b604082019050919050565b600061308c601683613545565b915061309782613e85565b602082019050919050565b60006130af601f83613545565b91506130ba82613eae565b602082019050919050565b6130ce81613686565b82525050565b60006130e08285612d6f565b91506130ec8284612d6f565b91508190509392505050565b600060208201905061310d6000830184612cdf565b92915050565b60006080820190506131286000830187612cdf565b6131356020830186612cdf565b61314260408301856130c5565b81810360608301526131548184612cfd565b905095945050505050565b60006020820190506131746000830184612cee565b92915050565b600060208201905081810360008301526131948184612d36565b905092915050565b600060208201905081810360008301526131b581612da0565b9050919050565b600060208201905081810360008301526131d581612dc3565b9050919050565b600060208201905081810360008301526131f581612de6565b9050919050565b6000602082019050818103600083015261321581612e09565b9050919050565b6000602082019050818103600083015261323581612e2c565b9050919050565b6000602082019050818103600083015261325581612e4f565b9050919050565b6000602082019050818103600083015261327581612e72565b9050919050565b6000602082019050818103600083015261329581612e95565b9050919050565b600060208201905081810360008301526132b581612eb8565b9050919050565b600060208201905081810360008301526132d581612edb565b9050919050565b600060208201905081810360008301526132f581612efe565b9050919050565b6000602082019050818103600083015261331581612f21565b9050919050565b6000602082019050818103600083015261333581612f44565b9050919050565b6000602082019050818103600083015261335581612f67565b9050919050565b6000602082019050818103600083015261337581612f8a565b9050919050565b6000602082019050818103600083015261339581612fad565b9050919050565b600060208201905081810360008301526133b581612fd0565b9050919050565b600060208201905081810360008301526133d581612ff3565b9050919050565b600060208201905081810360008301526133f581613016565b9050919050565b6000602082019050818103600083015261341581613039565b9050919050565b600060208201905081810360008301526134358161305c565b9050919050565b600060208201905081810360008301526134558161307f565b9050919050565b60006020820190508181036000830152613475816130a2565b9050919050565b600060208201905061349160008301846130c5565b92915050565b60006134a16134b2565b90506134ad8282613704565b919050565b6000604051905090565b600067ffffffffffffffff8211156134d7576134d661389a565b5b6134e0826138dd565b9050602081019050919050565b600067ffffffffffffffff8211156135085761350761389a565b5b613511826138dd565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061356c82613686565b915061357783613686565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156135ac576135ab6137af565b5b828201905092915050565b60006135c282613686565b91506135cd83613686565b9250826135dd576135dc6137de565b5b828204905092915050565b60006135f382613686565b91506135fe83613686565b925082821015613611576136106137af565b5b828203905092915050565b600061362782613666565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156136bd5780820151818401526020810190506136a2565b838111156136cc576000848401525b50505050565b600060028204905060018216806136ea57607f821691505b602082108114156136fe576136fd61380d565b5b50919050565b61370d826138dd565b810181811067ffffffffffffffff8211171561372c5761372b61389a565b5b80604052505050565b600061374082613686565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613773576137726137af565b5b600182019050919050565b600061378982613686565b915061379483613686565b9250826137a4576137a36137de565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e6f742057697a617264206f776e657200000000000000000000000000000000600082015250565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f416c6c20746f6b656e73206d696e746564000000000000000000000000000000600082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f43616e6e6f7420756e646f20776861742068617320616c72656164792062656560008201527f6e20646f6e650000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b7f4164647265737320616c7265616479206d696e74656400000000000000000000600082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b613ee08161361c565b8114613eeb57600080fd5b50565b613ef78161362e565b8114613f0257600080fd5b50565b613f0e8161363a565b8114613f1957600080fd5b50565b613f2581613686565b8114613f3057600080fd5b5056fea2646970667358221220be68cae302844d23743cea89eb68e4a6901eafbffe9d6e14e4d0d975c64ca1bd64736f6c6343000807003300000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000036697066733a2f2f516d64657864576b71333676616e395046745a55417455524a52526d68654d77624c664a366658795966387756752f00000000000000000000