6080604052681b1ae4d6e2ef500000730253c57a34f3a3ca4a18a5cd2e4648565a2ddb4d6040518060400160405280600a81526020017f536d6f6c73546f6b656e000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f534d4f4c530000000000000000000000000000000000000000000000000000008152506012692c781f708c509f400000620000bd620000b0620001d860201b60201c565b82620001e060201b60201c565b508260039080519060200190620000d692919062000f7b565b508160049080519060200190620000ef92919062000f7b565b5080600560006101000a81548160ff021916908360ff1602179055505050506200011e620001d860201b60201c565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001b0826200026e60201b60201c565b5050620001d2620001c6620001d860201b60201c565b620003cb60201b60201c565b6200102a565b600033905090565b620002536000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836200042c60201b60201c565b6200026a8282620006ef60201b62004ebe1760201c565b5050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16620002b7620001d860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f4f6e6c792053657474657200000000000000000000000000000000000000000081525060200191505060405180910390fd5b680410d586a20a4c0000811015620003c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f4e6f206c6f77657200000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060108190555050565b620003e6816011620008b960201b620047be1790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015620004695750600081115b15620006ea57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614620005ac576000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff16116200051057600062000574565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff168152602001908152602001600020600101545b905060006200059284836200099d60201b620037301790919060201c565b9050620005a886848484620009ef60201b60201c565b5050505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614620006e9576000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff16116200064d576000620006b1565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff168152602001908152602001600020600101545b90506000620006cf848362000c8f60201b62003ba71790919060201c565b9050620006e585848484620009ef60201b60201c565b5050505b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b620007af8160025462000c8f60201b62003ba71790919060201c565b6002819055506200080d816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000c8f60201b62003ba71790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b620008cb828262000d1860201b60201c565b156200093f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000620009e783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525062000df860201b60201c565b905092915050565b600062000a1c436040518060600160405280603f8152602001620065ca603f913962000ebc60201b60201c565b905060008463ffffffff1611801562000ab257508063ffffffff16600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16145b1562000b255781600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff1681526020019081526020016000206001018190555062000c32565b60405180604001604052808263ffffffff16815260200183815250600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008663ffffffff1663ffffffff16815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff1602179055506020820151816001015590505060018401600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248484604051808381526020018281526020019250505060405180910390a25050505050565b60008082840190508381101562000d0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000da1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180620066096022913960400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600083831115829062000ea9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101562000e6d57808201518184015260208101905062000e50565b50505050905090810190601f16801562000e9b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60006401000000008310829062000f71576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101562000f3557808201518184015260208101905062000f18565b50505050905090810190601f16801562000f635780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062000fbe57805160ff191683800117855562000fef565b8280016001018555821562000fef579182015b8281111562000fee57825182559160200191906001019062000fd1565b5b50905062000ffe919062001002565b5090565b6200102791905b808211156200102357600081600090555060010162001009565b5090565b90565b615590806200103a6000396000f3fe6080604052600436106102ae5760003560e01c80637362d9c811610175578063b4b5ea57116100dc578063db647b7611610095578063e7a324dc1161006f578063e7a324dc146110b4578063f1127ed8146110df578063f3283fba14611167578063f99aa03d146111b8576102ae565b8063db647b7614610fed578063dc654a7314611004578063dd62ed3e1461102f576102ae565b8063b4b5ea5714610e2c578063bb5f747b14610e91578063c3cda52014610efa578063c8c8ebe414610f80578063ca5c7b9114610fab578063da942cbf14610fd6576102ae565b8063a29a60891161012e578063a29a608914610c64578063a457c2d714610cb5578063a56c95b814610d28578063a8a5550e14610d63578063a9059cbb14610d8e578063b439824414610e01576102ae565b80637362d9c814610a29578063782d6fe114610a7a57806379cc679014610ae95780637ecebe0014610b44578063858750ab14610ba957806395d89b4114610bd4576102ae565b8063395093511161021957806355d0a1d0116101d257806355d0a1d01461080b578063587cde1e146108365780635c19a95c146108c757806367a9fca6146109185780636fcfff451461095357806370a08231146109c4576102ae565b806339509351146106415780633f3108f7146106b457806342966c681461070b5780634783c35b1461074657806349bd5a5e1461079d5780634c5a628c146107f4576102ae565b806320606b701161026b57806320606b70146104c157806323b872dd146104ec5780632898cafa1461057f5780632bfbd9cf146105aa5780632f5c4615146105e5578063313ce56714610610576102ae565b806306fdde03146102b0578063095ea7b3146103405780631419841d146103b35780631694505e1461040457806318160ddd1461045b5780631e293c1014610486575b005b3480156102bc57600080fd5b506102c5611209565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103055780820151818401526020810190506102ea565b50505050905090810190601f1680156103325780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561034c57600080fd5b506103996004803603604081101561036357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112ab565b604051808215151515815260200191505060405180910390f35b3480156103bf57600080fd5b50610402600480360360208110156103d657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112c9565b005b34801561041057600080fd5b50610419611419565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561046757600080fd5b5061047061143f565b6040518082815260200191505060405180910390f35b34801561049257600080fd5b506104bf600480360360208110156104a957600080fd5b8101908080359060200190929190505050611449565b005b3480156104cd57600080fd5b506104d661159c565b6040518082815260200191505060405180910390f35b3480156104f857600080fd5b506105656004803603606081101561050f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115b8565b604051808215151515815260200191505060405180910390f35b34801561058b57600080fd5b50610594611691565b6040518082815260200191505060405180910390f35b3480156105b657600080fd5b506105e3600480360360208110156105cd57600080fd5b8101908080359060200190929190505050611773565b005b3480156105f157600080fd5b506105fa61192f565b6040518082815260200191505060405180910390f35b34801561061c57600080fd5b50610625611935565b604051808260ff1660ff16815260200191505060405180910390f35b34801561064d57600080fd5b5061069a6004803603604081101561066457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061194c565b604051808215151515815260200191505060405180910390f35b3480156106c057600080fd5b506106c96119ff565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561071757600080fd5b506107446004803603602081101561072e57600080fd5b8101908080359060200190929190505050611a25565b005b34801561075257600080fd5b5061075b611a39565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107a957600080fd5b506107b2611a5f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561080057600080fd5b50610809611a85565b005b34801561081757600080fd5b50610820611a97565b6040518082815260200191505060405180910390f35b34801561084257600080fd5b506108856004803603602081101561085957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611be1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108d357600080fd5b50610916600480360360208110156108ea57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c4a565b005b34801561092457600080fd5b506109516004803603602081101561093b57600080fd5b8101908080359060200190929190505050611c57565b005b34801561095f57600080fd5b506109a26004803603602081101561097657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d29565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b3480156109d057600080fd5b50610a13600480360360208110156109e757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d4c565b6040518082815260200191505060405180910390f35b348015610a3557600080fd5b50610a7860048036036020811015610a4c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d94565b005b348015610a8657600080fd5b50610ad360048036036040811015610a9d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e05565b6040518082815260200191505060405180910390f35b348015610af557600080fd5b50610b4260048036036040811015610b0c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506121ca565b005b348015610b5057600080fd5b50610b9360048036036020811015610b6757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506121d8565b6040518082815260200191505060405180910390f35b348015610bb557600080fd5b50610bbe6121f0565b6040518082815260200191505060405180910390f35b348015610be057600080fd5b50610be96122d1565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c29578082015181840152602081019050610c0e565b50505050905090810190601f168015610c565780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610c7057600080fd5b50610cb360048036036020811015610c8757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612373565b005b348015610cc157600080fd5b50610d0e60048036036040811015610cd857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506124c3565b604051808215151515815260200191505060405180910390f35b348015610d3457600080fd5b50610d6160048036036020811015610d4b57600080fd5b8101908080359060200190929190505050612590565b005b348015610d6f57600080fd5b50610d786125ff565b6040518082815260200191505060405180910390f35b348015610d9a57600080fd5b50610de760048036036040811015610db157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061260f565b604051808215151515815260200191505060405180910390f35b348015610e0d57600080fd5b50610e1661262d565b6040518082815260200191505060405180910390f35b348015610e3857600080fd5b50610e7b60048036036020811015610e4f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612655565b6040518082815260200191505060405180910390f35b348015610e9d57600080fd5b50610ee060048036036020811015610eb457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061272b565b604051808215151515815260200191505060405180910390f35b348015610f0657600080fd5b50610f7e600480360360c0811015610f1d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803560ff1690602001909291908035906020019092919080359060200190929190505050612748565b005b348015610f8c57600080fd5b50610f95612acb565b6040518082815260200191505060405180910390f35b348015610fb757600080fd5b50610fc0612ad1565b6040518082815260200191505060405180910390f35b348015610fe257600080fd5b50610feb612c1b565b005b348015610ff957600080fd5b50611002612e73565b005b34801561101057600080fd5b50611019612e86565b6040518082815260200191505060405180910390f35b34801561103b57600080fd5b5061109e6004803603604081101561105257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612e8c565b6040518082815260200191505060405180910390f35b3480156110c057600080fd5b506110c9612f13565b6040518082815260200191505060405180910390f35b3480156110eb57600080fd5b5061113e6004803603604081101561110257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803563ffffffff169060200190929190505050612f2f565b604051808363ffffffff1663ffffffff1681526020018281526020019250505060405180910390f35b34801561117357600080fd5b506111b66004803603602081101561118a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612f70565b005b3480156111c457600080fd5b50611207600480360360208110156111db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061307e565b005b606060038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112a15780601f10611276576101008083540402835291602001916112a1565b820191906000526020600020905b81548152906001019060200180831161128457829003601f168201915b5050505050905090565b60006112bf6112b861318c565b8484613194565b6001905092915050565b6112d96112d461318c565b61272b565b61132e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604081526020018061532f6040913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018061517a602b913960400191505060405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661148a61318c565b73ffffffffffffffffffffffffffffffffffffffff1614611513576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f4f6e6c792053657474657200000000000000000000000000000000000000000081525060200191505060405180910390fd5b680410d586a20a4c0000811015611592576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f4e6f206c6f77657200000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060108190555050565b604051808061522e604391396043019050604051809103902081565b60006115c584848461338b565b611686846115d161318c565b611681856040518060600160405280602881526020016152e560289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061163761318c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461353d9092919063ffffffff16565b613194565b600190509392505050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a0823160006040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561173357600080fd5b505afa158015611747573d6000803e3d6000fd5b505050506040513d602081101561175d57600080fd5b8101908080519060200190929190505050905090565b61177c30611d4c565b8111156117d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260538152602001806152926053913960600191505060405180910390fd5b600081141561182e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260428152602001806151126042913960600191505060405180910390fd5b6000600f541461188a576001600f5414156118515761184c816135fd565b61192c565b6000611868600f54836136e690919063ffffffff16565b905061187d818361373090919063ffffffff16565b9150611888816135fd565b505b60006118a06002836136e690919063ffffffff16565b905060006118b7828461373090919063ffffffff16565b905060004790506118c78361377a565b60006118dc824761373090919063ffffffff16565b90506118e88382613a2d565b7f1ac88120e7cb0c1102895c679e94394ce3fb63f5fc8ff9519213798ec483fbc08382604051808381526020018281526020019250505060405180910390a1505050505b50565b600f5481565b6000600560009054906101000a900460ff16905090565b60006119f561195961318c565b846119f0856001600061196a61318c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613ba790919063ffffffff16565b613194565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611a36611a3061318c565b82613c2f565b50565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611a95611a9061318c565b613ca8565b565b600080600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015611b0257600080fd5b505afa158015611b16573d6000803e3d6000fd5b505050506040513d6020811015611b2c57600080fd5b810190808051906020019092919050505090506000611b49611691565b90506000611b7783611b6964e8d4a5100085613d0290919063ffffffff16565b6136e690919063ffffffff16565b90506000611ba6600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611d4c565b90506000611bd464e8d4a51000611bc68585613d0290919063ffffffff16565b6136e690919063ffffffff16565b9050809550505050505090565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b611c543382613d88565b50565b611c67611c6261318c565b61272b565b611cbc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604081526020018061532f6040913960400191505060405180910390fd5b60008114611d1f57600a811015611d1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061543c602e913960400191505060405180910390fd5b5b80600e8190555050565b60086020528060005260406000206000915054906101000a900463ffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611da4611d9f61318c565b61272b565b611df9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604081526020018061532f6040913960400191505060405180910390fd5b611e0281613ef9565b50565b6000438210611e5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603281526020018061540a6032913960400191505060405180910390fd5b6000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff161415611ecc5760009150506121c4565b82600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff1611611fb657600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff168152602001908152602001600020600101549150506121c4565b82600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008063ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff1611156120375760009150506121c4565b600080905060006001830390505b8163ffffffff168163ffffffff16111561215e576000600283830363ffffffff168161206d57fe5b048203905061207a614e9e565b600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001600182015481525050905086816000015163ffffffff161415612136578060200151955050505050506121c4565b86816000015163ffffffff16101561215057819350612157565b6001820392505b5050612045565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206001015493505050505b92915050565b6121d48282613f53565b5050565b60096020528060005260406000206000915090505481565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561229157600080fd5b505afa1580156122a5573d6000803e3d6000fd5b505050506040513d60208110156122bb57600080fd5b8101908080519060200190929190505050905090565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123695780601f1061233e57610100808354040283529160200191612369565b820191906000526020600020905b81548152906001019060200180831161234c57829003601f168201915b5050505050905090565b61238361237e61318c565b61272b565b6123d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604081526020018061532f6040913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461247f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806151a56029913960400191505060405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006125866124d061318c565b846125818560405180606001604052806025815260200161553760259139600160006124fa61318c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461353d9092919063ffffffff16565b613194565b6001905092915050565b6125a061259b61318c565b61272b565b6125f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604081526020018061532f6040913960400191505060405180910390fd5b80600f8190555050565b600061260a30611d4c565b905090565b600061262361261c61318c565b848461338b565b6001905092915050565b600061265061263a611691565b6126426121f0565b613ba790919063ffffffff16565b905090565b600080600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff16116126bf576000612723565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff168152602001908152602001600020600101545b915050919050565b600061274182601161402290919063ffffffff16565b9050919050565b6000604051808061522e604391396043019050604051809103902061276b611209565b8051906020012061277a614100565b30604051602001808581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001945050505050604051602081830303815290604052805190602001209050600060405180806154fd603a9139603a0190506040518091039020888888604051602001808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020019450505050506040516020818303038152906040528051906020012090506000828260405160200180807f190100000000000000000000000000000000000000000000000000000000000081525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612925573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156129b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806150bf6031913960400191505060405180910390fd5b600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558914612a5c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d81526020018061548e602d913960400191505060405180910390fd5b87421115612ab5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806153936031913960400191505060405180910390fd5b612abf818b613d88565b50505050505050505050565b60105481565b600080600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015612b3c57600080fd5b505afa158015612b50573d6000803e3d6000fd5b505050506040513d6020811015612b6657600080fd5b810190808051906020019092919050505090506000612b8361262d565b90506000612bb183612ba364e8d4a5100085613d0290919063ffffffff16565b6136e690919063ffffffff16565b90506000612be0600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611d4c565b90506000612c0e64e8d4a51000612c008585613d0290919063ffffffff16565b6136e690919063ffffffff16565b9050809550505050505090565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612cbc57600080fd5b505afa158015612cd0573d6000803e3d6000fd5b505050506040513d6020811015612ce657600080fd5b810190808051906020019092919050505090506000811415612d53576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260428152602001806154bb6042913960600191505060405180910390fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612dfd57600080fd5b505af1158015612e11573d6000803e3d6000fd5b505050506040513d6020811015612e2757600080fd5b8101908080519060200190929190505050507f5ad60a3809edf57c6c3e72fca26945b0cbce9e4a2d6aea167e35fc04c043bb9e816040518082815260200191505060405180910390a150565b612e84612e7f30611d4c565b611773565b565b600e5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60405180806154fd603a9139603a019050604051809103902081565b6007602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900463ffffffff16908060010154905082565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612fb161318c565b73ffffffffffffffffffffffffffffffffffffffff161461303a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f4f6e6c792053657474657200000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166130bf61318c565b73ffffffffffffffffffffffffffffffffffffffff1614613148576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f4f6e6c792053657474657200000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561321a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061546a6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156132a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806150f06022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166133cc61318c565b73ffffffffffffffffffffffffffffffffffffffff16146134605760105481111561345f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f2063616e20646f2c2062756400000000000000000000000000000000000081525060200191505060405180910390fd5b5b6000600e541415801561349f57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561352c5760006134bb600e54836136e690919063ffffffff16565b90506134d28430600284816134cc57fe5b0461410d565b61350984600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166002848161350357fe5b0461410d565b6135268484613521848661373090919063ffffffff16565b61410d565b50613538565b61353783838361410d565b5b505050565b60008383111582906135ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156135af578082015181840152602081019050613594565b50505050905090810190601f1680156135dc5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b61362a30600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361410d565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561369457600080fd5b505af11580156136a8573d6000803e3d6000fd5b505050507f8765d2bb982ed6ee74d2b03c76c9c129aa4a4e3e6b17bd7cf7830088e9d49054816040518082815260200191505060405180910390a150565b600061372883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506141e6565b905092915050565b600061377283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061353d565b905092915050565b606060026040519080825280602002602001820160405280156137ac5781602001602082028038833980820191505090505b50905030816000815181106137bd57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561385f57600080fd5b505afa158015613873573d6000803e3d6000fd5b505050506040513d602081101561388957600080fd5b8101908080519060200190929190505050816001815181106138a757fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061390e30600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684613194565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156139e85780820151818401526020810190506139cd565b505050509050019650505050505050600060405180830381600087803b158015613a1157600080fd5b505af1158015613a25573d6000803e3d6000fd5b505050505050565b613a5a30600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684613194565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008030426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b158015613b5057600080fd5b505af1158015613b64573d6000803e3d6000fd5b50505050506040513d6060811015613b7b57600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050505050565b600080828401905083811015613c25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b613c9a600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000836142ac565b613ca48282614549565b5050565b613cbc81601161470190919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f0a8eb35e5ca14b3d6f28e4abf2f128dbab231a58b56e89beb5d636115001e16560405160405180910390a250565b600080831415613d155760009050613d82565b6000828402905082848281613d2657fe5b0414613d7d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806152716021913960400191505060405180910390fd5b809150505b92915050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000613df784611d4c565b905082600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a4613ef38284836142ac565b50505050565b613f0d8160116147be90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b613f5d8282613c2f565b61401e82613f6961318c565b6140198460405180606001604052806024815260200161536f60249139600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000613fcf61318c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461353d9092919063ffffffff16565b613194565b5050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156140a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061530d6022913960400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000804690508091505090565b6141d6600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836142ac565b6141e1838383614899565b505050565b60008083118290614292576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561425757808201518184015260208101905061423c565b50505050905090810190601f1680156142845780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161429e57fe5b049050809150509392505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156142e85750600081115b1561454457600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614614418576000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff161161438b5760006143ef565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff168152602001908152602001600020600101545b90506000614406848361373090919063ffffffff16565b905061441486848484614b4f565b5050505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614614543576000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff16116144b657600061451a565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff168152602001908152602001600020600101545b905060006145318483613ba790919063ffffffff16565b905061453f85848484614b4f565b5050505b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156145cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806153c46021913960400191505060405180910390fd5b61463a8160405180606001604052806022815260200161509d602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461353d9092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506146918160025461373090919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b61470b8282614022565b614760576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806151ce6021913960400191505060405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6147c88282614022565b1561483b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561491f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153e56025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156149a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061507a6023913960400191505060405180910390fd5b614a1081604051806060016040528060268152602001615154602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461353d9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550614aa3816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613ba790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000614b73436040518060600160405280603f81526020016151ef603f9139614de3565b905060008463ffffffff16118015614c0857508063ffffffff16600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16145b15614c795781600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060010181905550614d86565b60405180604001604052808263ffffffff16815260200183815250600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008663ffffffff1663ffffffff16815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff1602179055506020820151816001015590505060018401600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248484604051808381526020018281526020019250505060405180910390a25050505050565b600064010000000083108290614e94576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614e59578082015181840152602081019050614e3e565b50505050905090810190601f168015614e865780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082905092915050565b6040518060400160405280600063ffffffff168152602001600081525090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415614f61576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b614f7681600254613ba790919063ffffffff16565b600281905550614fcd816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613ba790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654552433230476f7665726e616e63653a3a64656c656761746542795369673a20696e76616c6964207369676e617475726545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332305472616e736665724c69717569646974794c6f636b3a3a6c6f636b4c69717569646974793a206c6f636b20616d6f756e742063616e6e6f74206265203045524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365534d4f4c53546f6b656e3a3a736574556e69737761705632526f757465723a20616c726561647920736574534d4f4c53546f6b656e3a3a736574556e69737761705632506169723a20616c726561647920736574526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c654552433230476f7665726e616e63653a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473454950373132446f6d61696e28737472696e67206e616d652c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332305472616e736665724c69717569646974794c6f636b3a3a6c6f636b4c69717569646974793a206c6f636b20616d6f756e7420686967686572207468616e206c6f636b61626c652062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365526f6c65733a206163636f756e7420697320746865207a65726f206164647265737357686974656c69737441646d696e526f6c653a2063616c6c657220646f6573206e6f742068617665207468652057686974656c69737441646d696e20726f6c6545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e63654552433230476f7665726e616e63653a3a64656c656761746542795369673a207369676e6174757265206578706972656445524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f20616464726573734552433230476f7665726e616e63653a3a6765745072696f72566f7465733a206e6f74207965742064657465726d696e6564534d4f4c53546f6b656e3a3a7365744c69717569646974794c6f636b44697669736f723a20746f6f20736d616c6c45524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734552433230476f7665726e616e63653a3a64656c656761746542795369673a20696e76616c6964206e6f6e636545524332305472616e736665724c69717569646974794c6f636b3a3a6275726e4c69717569646974793a206275726e20616d6f756e742063616e6e6f74206265203044656c65676174696f6e28616464726573732064656c6567617465652c75696e74323536206e6f6e63652c75696e74323536206578706972792945524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a72315820b0f8a9c712c25c1b5abb637612e698b547b1e983cb91eb281ddf5a0f2c89de7f64736f6c634300051100324552433230476f7665726e616e63653a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373