Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0xc106b98c4D0b3F1c92Da0E9a6089e9c63CEACBB0
Balance 0.017124 ETH
Nonce 1
Code Size 22935 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

22935 bytes
0x6080604052600436106103855760003560e01c806370a08231116101d1578063bfa21d6a11610102578063dd62ed3e116100a0578063f84ba65d1161006f578063f84ba65d14610d1d578063f8821a6214610d46578063f887ea4014610d71578063fabb0b4f14610d9c5761038c565b8063dd62ed3e14610c4f578063e96fada214610c8c578063f1f3bca314610cb7578063f2fde38b14610cf45761038c565b8063d0889358116100dc578063d088935814610ba9578063d686014214610bd2578063d912b2ce14610bfb578063dae39f9214610c125761038c565b8063bfa21d6a14610b18578063c1adf7bc14610b43578063c287184e14610b805761038c565b80639b02c4021161016f578063a9059cbb11610149578063a9059cbb14610a5c578063abe57e7014610a99578063bafe446b14610ac2578063bf56b37114610aed5761038c565b80639b02c402146109dd578063a4b45c0014610a08578063a8aa1b3114610a315761038c565b8063893d20e8116101ab578063893d20e81461091f5780638b42507f1461094a5780638da5cb5b1461098757806395d89b41146109b25761038c565b806370a08231146108a0578063715018a6146108dd5780638124f7ac146108f45761038c565b8063421dd7c7116102b6578063584f969a11610254578063658d4b7f11610223578063658d4b7f146107e6578063672434821461080f5780636ddd1713146108385780636f4ce428146108635761038c565b8063584f969a1461075057806360bba03d1461076757806361e08e721461079057806363a803e1146107bb5761038c565b80635071393511610290578063507139351461069657806356a227f2146106bf578063571ac8b0146106e85780635804f1e4146107255761038c565b8063421dd7c71461061957806346d7edaa14610630578063492a937b1461066d5761038c565b8063234e949411610323578063313ce567116102fd578063313ce5671461054b578063332402f81461057657806334848b9a146105b35780633f4218e0146105dc5761038c565b8063234e9494146104b857806323b872dd146104e35780632b112e49146105205761038c565b8063095db78f1161035f578063095db78f14610410578063095ea7b3146104395780631031e36e1461047657806318160ddd1461048d5761038c565b80630445b6671461039157806304a66b48146103bc57806306fdde03146103e55761038c565b3661038c57005b600080fd5b34801561039d57600080fd5b506103a6610dc7565b6040516103b3919061418e565b60405180910390f35b3480156103c857600080fd5b506103e360048036038101906103de91906141df565b610dcd565b005b3480156103f157600080fd5b506103fa610f33565b60405161040791906142ea565b60405180910390f35b34801561041c57600080fd5b50610437600480360381019061043291906143a9565b610f70565b005b34801561044557600080fd5b50610460600480360381019061045b9190614467565b61120f565b60405161046d91906144b6565b60405180910390f35b34801561048257600080fd5b5061048b611301565b005b34801561049957600080fd5b506104a2611408565b6040516104af919061418e565b60405180910390f35b3480156104c457600080fd5b506104cd611412565b6040516104da919061418e565b60405180910390f35b3480156104ef57600080fd5b5061050a600480360381019061050591906144d1565b611434565b60405161051791906144b6565b60405180910390f35b34801561052c57600080fd5b506105356115f6565b604051610542919061418e565b60405180910390f35b34801561055757600080fd5b5061056061166a565b60405161056d9190614540565b60405180910390f35b34801561058257600080fd5b5061059d6004803603810190610598919061455b565b611673565b6040516105aa91906144b6565b60405180910390f35b3480156105bf57600080fd5b506105da60048036038101906105d5919061459b565b6117ed565b005b3480156105e857600080fd5b5061060360048036038101906105fe91906145ee565b611942565b60405161061091906144b6565b60405180910390f35b34801561062557600080fd5b5061062e611962565b005b34801561063c57600080fd5b50610657600480360381019061065291906145ee565b611a6a565b604051610664919061418e565b60405180910390f35b34801561067957600080fd5b50610694600480360381019061068f919061461b565b611a82565b005b3480156106a257600080fd5b506106bd60048036038101906106b8919061459b565b611b75565b005b3480156106cb57600080fd5b506106e660048036038101906106e1919061465b565b611bf3565b005b3480156106f457600080fd5b5061070f600480360381019061070a91906145ee565b611d9b565b60405161071c91906144b6565b60405180910390f35b34801561073157600080fd5b5061073a611dce565b604051610747919061418e565b60405180910390f35b34801561075c57600080fd5b50610765611dd4565b005b34801561077357600080fd5b5061078e6004803603810190610789919061461b565b611edc565b005b34801561079c57600080fd5b506107a5611f3f565b6040516107b2919061418e565b60405180910390f35b3480156107c757600080fd5b506107d0611f45565b6040516107dd919061418e565b60405180910390f35b3480156107f257600080fd5b5061080d6004803603810190610808919061461b565b611f67565b005b34801561081b57600080fd5b50610836600480360381019061083191906146f1565b611fca565b005b34801561084457600080fd5b5061084d61217d565b60405161085a91906144b6565b60405180910390f35b34801561086f57600080fd5b5061088a600480360381019061088591906145ee565b612190565b604051610897919061418e565b60405180910390f35b3480156108ac57600080fd5b506108c760048036038101906108c291906145ee565b6121a8565b6040516108d4919061418e565b60405180910390f35b3480156108e957600080fd5b506108f26121f1565b005b34801561090057600080fd5b50610909612205565b60405161091691906144b6565b60405180910390f35b34801561092b57600080fd5b50610934612218565b6040516109419190614781565b60405180910390f35b34801561095657600080fd5b50610971600480360381019061096c91906145ee565b612227565b60405161097e91906144b6565b60405180910390f35b34801561099357600080fd5b5061099c612247565b6040516109a99190614781565b60405180910390f35b3480156109be57600080fd5b506109c7612270565b6040516109d491906142ea565b60405180910390f35b3480156109e957600080fd5b506109f26122ad565b6040516109ff919061418e565b60405180910390f35b348015610a1457600080fd5b50610a2f6004803603810190610a2a919061455b565b6122b3565b005b348015610a3d57600080fd5b50610a46612341565b604051610a539190614781565b60405180910390f35b348015610a6857600080fd5b50610a836004803603810190610a7e9190614467565b612367565b604051610a9091906144b6565b60405180910390f35b348015610aa557600080fd5b50610ac06004803603810190610abb919061479c565b61237c565b005b348015610ace57600080fd5b50610ad76123ce565b604051610ae4919061418e565b60405180910390f35b348015610af957600080fd5b50610b026123f0565b604051610b0f919061418e565b60405180910390f35b348015610b2457600080fd5b50610b2d6123f6565b604051610b3a91906147fd565b60405180910390f35b348015610b4f57600080fd5b50610b6a6004803603810190610b6591906145ee565b61241c565b604051610b77919061418e565b60405180910390f35b348015610b8c57600080fd5b50610ba76004803603810190610ba29190614818565b612434565b005b348015610bb557600080fd5b50610bd06004803603810190610bcb9190614845565b612454565b005b348015610bde57600080fd5b50610bf96004803603810190610bf49190614898565b6124bb565b005b348015610c0757600080fd5b50610c106125eb565b005b348015610c1e57600080fd5b50610c396004803603810190610c3491906145ee565b61261f565b604051610c4691906144b6565b60405180910390f35b348015610c5b57600080fd5b50610c766004803603810190610c71919061455b565b61263f565b604051610c83919061418e565b60405180910390f35b348015610c9857600080fd5b50610ca16126c6565b604051610cae91906147fd565b60405180910390f35b348015610cc357600080fd5b50610cde6004803603810190610cd991906148d8565b6126ec565b604051610ceb919061418e565b60405180910390f35b348015610d0057600080fd5b50610d1b6004803603810190610d1691906145ee565b612735565b005b348015610d2957600080fd5b50610d446004803603810190610d3f919061461b565b6127b8565b005b348015610d5257600080fd5b50610d5b61281b565b604051610d68919061418e565b60405180910390f35b348015610d7d57600080fd5b50610d86612821565b604051610d939190614964565b60405180910390f35b348015610da857600080fd5b50610db1612847565b604051610dbe919061418e565b60405180910390f35b60265481565b610dd561284d565b8385610de191906149ae565b6002808688610df091906149ae565b610dfa9190614a11565b610e049190614a42565b14610e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3b90614af6565b60405180910390fd5b846010819055508360118190555082600e8190555081600f819055508285610e6c91906149ae565b6012819055508184610e7e91906149ae565b601381905550806014819055506002601454610e9a9190614a11565b601354601254610eaa91906149ae565b1115610eeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee290614b62565b60405180910390fd5b7f01bae858246c904512695a3f6d48ab88abb7a0192fdd7c53b043e60317795f45601254601354601454604051610f2493929190614b82565b60405180910390a15050505050565b60606040518060400160405280600b81526020017f5472656e64417070656e64000000000000000000000000000000000000000000815250905090565b60296000610f7c6128cb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806110015750610fd2612247565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611040576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103790614c05565b60405180910390fd5b801561106057601b60009054906101000a900460ff1661105f57600080fd5b5b60005b838390508110156112095781156110f657601d600081548092919061108790614c25565b91905055507f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea328585848181106110c1576110c0614c6d565b5b90506020020160208101906110d691906145ee565b4360026040516110e99493929190614cd7565b60405180910390a161117e565b6000601a600086868581811061110f5761110e614c6d565b5b905060200201602081019061112491906145ee565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461117d57601d600081548092919061117790614d1c565b91905055505b5b8161118a57600061118c565b435b601a60008686858181106111a3576111a2614c6d565b5b90506020020160208101906111b891906145ee565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808061120190614c25565b915050611063565b50505050565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516112ef919061418e565b60405180910390a36001905092915050565b6029600061130d6128cb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806113925750611363612247565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6113d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c890614c05565b60405180910390fd5b602360019054906101000a900460ff16156113eb57600080fd5b6000602360006101000a81548160ff021916908315150217905550565b6000600354905090565b60006009600a6114229190614e78565b60055461142f9190614a11565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146115e25781600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115619190614ec3565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6115ed8484846128d3565b90509392505050565b6000611623600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121a8565b61164e600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121a8565b61165891906149ae565b6003546116659190614ec3565b905090565b60006009905090565b6000601560009054906101000a900460ff161580156116dc5750601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117325750601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561174057600090506117e7565b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117e45750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b90505b92915050565b602960006117f96128cb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061187e575061184f612247565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6118bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b490614c05565b60405180910390fd5b602360009054906101000a900460ff161580156118da5750600a83105b6118e357600080fd5b826022819055506001602360006101000a81548160ff02191690831515021790555043602081905550814261191891906149ae565b601e819055506009600a61192c9190614e78565b816119379190614a42565b601c81905550505050565b600b6020528060005260406000206000915054906101000a900460ff1681565b6029600061196e6128cb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119f357506119c4612247565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611a32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2990614c05565b60405180910390fd5b6001601b60016101000a81548160ff0219169083151502179055506000601b60006101000a81548160ff021916908315150217905550565b601a6020528060005260406000206000915090505481565b611a8a61284d565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1190614f69565b60405180910390fd5b80601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611b7d61284d565b600083118015611b8d5750600082115b8015611b995750600081115b8015611ba757506127108111155b611bb057600080fd5b8083600354611bbf9190614a42565b611bc99190614a11565b6004819055508082600354611bde9190614a42565b611be89190614a11565b600581905550505050565b60296000611bff6128cb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c845750611c55612247565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611cc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cba90614c05565b60405180910390fd5b60004790506000811115611d965760008273ffffffffffffffffffffffffffffffffffffffff1660648584611cf89190614a42565b611d029190614a11565b604051611d0e90614fba565b60006040518083038185875af1925050503d8060008114611d4b576040519150601f19603f3d011682016040523d82523d6000602084013e611d50565b606091505b5050905080611d94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8b9061501b565b60405180910390fd5b505b505050565b6000611dc7827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61120f565b9050919050565b60215481565b60296000611de06128cb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e655750611e36612247565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611ea4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9b90614c05565b60405180910390fd5b6001602360016101000a81548160ff0219169083151502179055506001602360006101000a81548160ff021916908315150217905550565b611ee461284d565b80602960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60245481565b60006009600a611f559190614e78565b600654611f629190614a11565b905090565b611f6f61284d565b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611fd261284d565b600084849050118015611fea57508383905082829050145b611ff357600080fd5b600033905060005b85859050811015612175576019600087878481811061201d5761201c614c6d565b5b905060200201602081019061203291906145ee565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120f85750600d600087878481811061209957612098614c6d565b5b90506020020160208101906120ae91906145ee565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612162576121608287878481811061211457612113614c6d565b5b905060200201602081019061212991906145ee565b6009600a6121379190614e78565b87878681811061214a57612149614c6d565b5b9050602002013561215b9190614a42565b613106565b505b808061216d90614c25565b915050611ffb565b505050505050565b602560009054906101000a900460ff1681565b60096020528060005260406000206000915090505481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6121f961284d565b6122036000613294565b565b601560009054906101000a900460ff1681565b6000612222612247565b905090565b600c6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f54524e4400000000000000000000000000000000000000000000000000000000815250905090565b601d5481565b6122bb61284d565b81601560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006123743384846128d3565b905092915050565b61238461284d565b6000821180156123945750600081115b80156123a257506127108111155b6123ab57600080fd5b80826003546123ba9190614a42565b6123c49190614a11565b6006819055505050565b60006009600a6123de9190614e78565b6004546123eb9190614a11565b905090565b60205481565b601560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915090505481565b61243c61284d565b603c81111561244a57600080fd5b8060248190555050565b61245c61284d565b6000821161246957600080fd5b82602560006101000a81548160ff021916908315150217905550816003546124919190614a11565b6026819055506009600a6124a59190614e78565b816124b09190614a42565b602781905550505050565b602960006124c76128cb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061254c575061251d612247565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61258b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258290614c05565b60405180910390fd5b601b60019054906101000a900460ff16156125a557600080fd5b81601b60006101000a81548160ff0219169083151502179055506201518081106125ce57600080fd5b80601e60008282546125e091906149ae565b925050819055505050565b6125f361284d565b601560009054906101000a900460ff1615601560006101000a81548160ff021916908315150217905550565b600d6020528060005260406000206000915054906101000a900460ff1681565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000436022546020546126ff91906149ae565b1061271a5760016014546127139190614ec3565b9050612730565b811561272a576013549050612730565b60125490505b919050565b61273d61284d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036127ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a3906150ad565b60405180910390fd5b6127b581613294565b50565b6127c061284d565b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60275481565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60225481565b6128556128cb565b73ffffffffffffffffffffffffffffffffffffffff16612873612247565b73ffffffffffffffffffffffffffffffffffffffff16146128c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128c090615119565b60405180910390fd5b565b600033905090565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612943576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293a90615185565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036129b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129a9906151f1565b60405180910390fd5b600082116129f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129ec9061525d565b60405180910390fd5b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612a77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a6e906152c9565b60405180910390fd5b612a7f613358565b158015612ad55750601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612b6f57600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612b66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b5d90615335565b60405180910390fd5b612b6e613365565b5b602360009054906101000a900460ff16612c6457600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612c245750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612c63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c5a906153a1565b60405180910390fd5b5b612c6f848484613390565b601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612d175750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612d7957600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612d7857612d77838361394c565b5b5b601b60009054906101000a900460ff168015612d96575042601e54115b15612f0c57601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612e2057508273ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614155b8015612e6b57506000601a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15612f0b5743601a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601d6000815480929190612ec790614c25565b91905055507f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea3284436000604051612f0294939291906153fc565b60405180910390a15b5b602860009054906101000a900460ff1615612f3357612f2c848484613106565b90506130ff565b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f7e9190614ec3565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000829050612fd08585611673565b1561300657612fdf84846139e5565b9050612fea84613ac8565b8015612ff65750600083115b156130055761300483613c0d565b5b5b80600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461305191906149ae565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516130f1919061418e565b60405180910390a360019150505b9392505050565b600081600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131539190614ec3565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131e191906149ae565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613281919061418e565b60405180910390a3600190509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000806020541415905090565b43602081905550426021819055506001602560006101000a81548160ff021916908315150217905550565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806134315750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61394757601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661348e57600554613492565b6004545b8111156134d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134cb9061548d565b60405180910390fd5b43602454600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461352291906149ae565b1115613563576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161355a906154f9565b60405180910390fd5b6000601a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146136a4576009600a6135b89190614e78565b601c546135c59190614a42565b811115801561361357506000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b8015613620575042601e54115b61365f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136569061558b565b60405180910390fd5b43600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561373f5743600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613946565b6137498383611673565b1561394557601b60009054906101000a900460ff16801561376b575042601e54115b80156137b5575043600a60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b801561380057506000601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b156138885743601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea328343600160405161387f94939291906155e6565b60405180910390a15b43600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146139445743600a60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b5b505050565b600060065490508082600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461399f91906149ae565b11156139e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139d79061569d565b60405180910390fd5b505050565b600080601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690506000601454613a45836126ec565b85613a509190614a42565b613a5a9190614a11565b905080600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613aab91906149ae565b925050819055508084613abe9190614ec3565b9250505092915050565b6000601960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613b315750602860009054906101000a900460ff16155b8015613b495750602560009054906101000a900460ff165b8015613b9e5750601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8015613beb5750602754600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b8015613c0657506000601354601254613c0491906149ae565b115b9050919050565b6001602860006101000a81548160ff0219169083151502179055506000601354601254613c3a91906149ae565b905060006026548310613c4f57602654613c51565b825b905080600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015613cdd57600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b6000601154601054613cef91906149ae565b905060008360028385613d029190614a42565b613d0c9190614a11565b613d169190614a11565b90508083613d249190614ec3565b92506000600267ffffffffffffffff811115613d4357613d426156bd565b5b604051908082528060200260200182016040528015613d715781602001602082028036833780820191505090505b5090503081600081518110613d8957613d88614c6d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613e30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e549190615701565b81600181518110613e6857613e67614c6d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478660008530426040518663ffffffff1660e01b8152600401613f0b95949392919061581d565b600060405180830381600087803b158015613f2557600080fd5b505af1158015613f39573d6000803e3d6000fd5b5050505060008147613f4b9190614ec3565b90506000600286613f5c9190614a11565b88613f679190614ec3565b905060008160028885613f7a9190614a42565b613f849190614a11565b613f8e9190614a11565b905060008184613f9e9190614ec3565b90506000811115614039576000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051613ff190614fba565b60006040518083038185875af1925050503d806000811461402e576040519150601f19603f3d011682016040523d82523d6000602084013e614033565b606091505b50509050505b600087111561411257601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308a600080601560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016140cb96959493929190615898565b60606040518083038185885af11580156140e9573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061410e919061590e565b5050505b7fdaf6233a382145376035341e71f8a04305f7e323d0fe3e58c908cf0a26b76df981838960405161414593929190614b82565b60405180910390a1505050505050505050506000602860006101000a81548160ff02191690831515021790555050565b6000819050919050565b61418881614175565b82525050565b60006020820190506141a3600083018461417f565b92915050565b600080fd5b600080fd5b6141bc81614175565b81146141c757600080fd5b50565b6000813590506141d9816141b3565b92915050565b600080600080600060a086880312156141fb576141fa6141a9565b5b6000614209888289016141ca565b955050602061421a888289016141ca565b945050604061422b888289016141ca565b935050606061423c888289016141ca565b925050608061424d888289016141ca565b9150509295509295909350565b600081519050919050565b600082825260208201905092915050565b60005b83811015614294578082015181840152602081019050614279565b60008484015250505050565b6000601f19601f8301169050919050565b60006142bc8261425a565b6142c68185614265565b93506142d6818560208601614276565b6142df816142a0565b840191505092915050565b6000602082019050818103600083015261430481846142b1565b905092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126143315761433061430c565b5b8235905067ffffffffffffffff81111561434e5761434d614311565b5b60208301915083602082028301111561436a57614369614316565b5b9250929050565b60008115159050919050565b61438681614371565b811461439157600080fd5b50565b6000813590506143a38161437d565b92915050565b6000806000604084860312156143c2576143c16141a9565b5b600084013567ffffffffffffffff8111156143e0576143df6141ae565b5b6143ec8682870161431b565b935093505060206143ff86828701614394565b9150509250925092565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061443482614409565b9050919050565b61444481614429565b811461444f57600080fd5b50565b6000813590506144618161443b565b92915050565b6000806040838503121561447e5761447d6141a9565b5b600061448c85828601614452565b925050602061449d858286016141ca565b9150509250929050565b6144b081614371565b82525050565b60006020820190506144cb60008301846144a7565b92915050565b6000806000606084860312156144ea576144e96141a9565b5b60006144f886828701614452565b935050602061450986828701614452565b925050604061451a868287016141ca565b9150509250925092565b600060ff82169050919050565b61453a81614524565b82525050565b60006020820190506145556000830184614531565b92915050565b60008060408385031215614572576145716141a9565b5b600061458085828601614452565b925050602061459185828601614452565b9150509250929050565b6000806000606084860312156145b4576145b36141a9565b5b60006145c2868287016141ca565b93505060206145d3868287016141ca565b92505060406145e4868287016141ca565b9150509250925092565b600060208284031215614604576146036141a9565b5b600061461284828501614452565b91505092915050565b60008060408385031215614632576146316141a9565b5b600061464085828601614452565b925050602061465185828601614394565b9150509250929050565b60008060408385031215614672576146716141a9565b5b6000614680858286016141ca565b925050602061469185828601614452565b9150509250929050565b60008083601f8401126146b1576146b061430c565b5b8235905067ffffffffffffffff8111156146ce576146cd614311565b5b6020830191508360208202830111156146ea576146e9614316565b5b9250929050565b6000806000806040858703121561470b5761470a6141a9565b5b600085013567ffffffffffffffff811115614729576147286141ae565b5b6147358782880161431b565b9450945050602085013567ffffffffffffffff811115614758576147576141ae565b5b6147648782880161469b565b925092505092959194509250565b61477b81614429565b82525050565b60006020820190506147966000830184614772565b92915050565b600080604083850312156147b3576147b26141a9565b5b60006147c1858286016141ca565b92505060206147d2858286016141ca565b9150509250929050565b60006147e782614409565b9050919050565b6147f7816147dc565b82525050565b600060208201905061481260008301846147ee565b92915050565b60006020828403121561482e5761482d6141a9565b5b600061483c848285016141ca565b91505092915050565b60008060006060848603121561485e5761485d6141a9565b5b600061486c86828701614394565b935050602061487d868287016141ca565b925050604061488e868287016141ca565b9150509250925092565b600080604083850312156148af576148ae6141a9565b5b60006148bd85828601614394565b92505060206148ce858286016141ca565b9150509250929050565b6000602082840312156148ee576148ed6141a9565b5b60006148fc84828501614394565b91505092915050565b6000819050919050565b600061492a61492561492084614409565b614905565b614409565b9050919050565b600061493c8261490f565b9050919050565b600061494e82614931565b9050919050565b61495e81614943565b82525050565b60006020820190506149796000830184614955565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006149b982614175565b91506149c483614175565b92508282019050808211156149dc576149db61497f565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614a1c82614175565b9150614a2783614175565b925082614a3757614a366149e2565b5b828204905092915050565b6000614a4d82614175565b9150614a5883614175565b9250828202614a6681614175565b91508282048414831517614a7d57614a7c61497f565b5b5092915050565b7f4c697175696469747920666565206d75737420626520616e206576656e206e7560008201527f6d6265722064756520746f20726f756e64696e67000000000000000000000000602082015250565b6000614ae0603483614265565b9150614aeb82614a84565b604082019050919050565b60006020820190508181036000830152614b0f81614ad3565b9050919050565b7f4665657320746f6f206869676800000000000000000000000000000000000000600082015250565b6000614b4c600d83614265565b9150614b5782614b16565b602082019050919050565b60006020820190508181036000830152614b7b81614b3f565b9050919050565b6000606082019050614b97600083018661417f565b614ba4602083018561417f565b614bb1604083018461417f565b949350505050565b7f43616c6c6572206973206e6f742061207465616d206d656d6265720000000000600082015250565b6000614bef601b83614265565b9150614bfa82614bb9565b602082019050919050565b60006020820190508181036000830152614c1e81614be2565b9050919050565b6000614c3082614175565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614c6257614c6161497f565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000614cc1614cbc614cb784614c9c565b614905565b614524565b9050919050565b614cd181614ca6565b82525050565b6000608082019050614cec6000830187614772565b614cf96020830186614772565b614d06604083018561417f565b614d136060830184614cc8565b95945050505050565b6000614d2782614175565b915060008203614d3a57614d3961497f565b5b600182039050919050565b60008160011c9050919050565b6000808291508390505b6001851115614d9c57808604811115614d7857614d7761497f565b5b6001851615614d875780820291505b8081029050614d9585614d45565b9450614d5c565b94509492505050565b600082614db55760019050614e71565b81614dc35760009050614e71565b8160018114614dd95760028114614de357614e12565b6001915050614e71565b60ff841115614df557614df461497f565b5b8360020a915084821115614e0c57614e0b61497f565b5b50614e71565b5060208310610133831016604e8410600b8410161715614e475782820a905083811115614e4257614e4161497f565b5b614e71565b614e548484846001614d52565b92509050818404811115614e6b57614e6a61497f565b5b81810290505b9392505050565b6000614e8382614175565b9150614e8e83614524565b9250614ebb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614da5565b905092915050565b6000614ece82614175565b9150614ed983614175565b9250828203905081811115614ef157614ef061497f565b5b92915050565b7f43616e277420616c7465722063757272656e74206c697175696469747920706160008201527f6972000000000000000000000000000000000000000000000000000000000000602082015250565b6000614f53602283614265565b9150614f5e82614ef7565b604082019050919050565b60006020820190508181036000830152614f8281614f46565b9050919050565b600081905092915050565b50565b6000614fa4600083614f89565b9150614faf82614f94565b600082019050919050565b6000614fc582614f97565b9150819050919050565b7f4661696c656420746f207472616e736665722066756e64730000000000000000600082015250565b6000615005601883614265565b915061501082614fcf565b602082019050919050565b6000602082019050818103600083015261503481614ff8565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000615097602683614265565b91506150a28261503b565b604082019050919050565b600060208201905081810360008301526150c68161508a565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000615103602083614265565b915061510e826150cd565b602082019050919050565b60006020820190508181036000830152615132816150f6565b9050919050565b7f42455032303a207472616e736665722066726f6d203078300000000000000000600082015250565b600061516f601883614265565b915061517a82615139565b602082019050919050565b6000602082019050818103600083015261519e81615162565b9050919050565b7f42455032303a207472616e7366657220746f2030783000000000000000000000600082015250565b60006151db601683614265565b91506151e6826151a5565b602082019050919050565b6000602082019050818103600083015261520a816151ce565b9050919050565b7f416d6f756e74206d757374206265203e207a65726f0000000000000000000000600082015250565b6000615247601583614265565b915061525282615211565b602082019050919050565b600060208201905081810360008301526152768161523a565b9050919050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b60006152b3601483614265565b91506152be8261527d565b602082019050919050565b600060208201905081810360008301526152e2816152a6565b9050919050565b7f4c6971756964697479206e6f74206164646564207965742e0000000000000000600082015250565b600061531f601883614265565b915061532a826152e9565b602082019050919050565b6000602082019050818103600083015261534e81615312565b9050919050565b7f54726164696e67206e6f74206f70656e207965742e0000000000000000000000600082015250565b600061538b601583614265565b915061539682615355565b602082019050919050565b600060208201905081810360008301526153ba8161537e565b9050919050565b6000819050919050565b60006153e66153e16153dc846153c1565b614905565b614524565b9050919050565b6153f6816153cb565b82525050565b60006080820190506154116000830187614772565b61541e6020830186614772565b61542b604083018561417f565b61543860608301846153ed565b95945050505050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b6000615477601183614265565b915061548282615441565b602082019050919050565b600060208201905081810360008301526154a68161546a565b9050919050565b7f5472616e736665722072617465206c696d69742065786365656465642e000000600082015250565b60006154e3601d83614265565b91506154ee826154ad565b602082019050919050565b60006020820190508181036000830152615512816154d6565b9050919050565b7f57616c6c65742070726f7465637465642c20706c6561736520636f6e7461637460008201527f20737570706f72742e0000000000000000000000000000000000000000000000602082015250565b6000615575602983614265565b915061558082615519565b604082019050919050565b600060208201905081810360008301526155a481615568565b9050919050565b6000819050919050565b60006155d06155cb6155c6846155ab565b614905565b614524565b9050919050565b6155e0816155b5565b82525050565b60006080820190506155fb6000830187614772565b6156086020830186614772565b615615604083018561417f565b61562260608301846155d7565b95945050505050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b6000615687602583614265565b91506156928261562b565b604082019050919050565b600060208201905081810360008301526156b68161567a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506156fb8161443b565b92915050565b600060208284031215615717576157166141a9565b5b6000615725848285016156ec565b91505092915050565b600061574961574461573f846153c1565b614905565b614175565b9050919050565b6157598161572e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61579481614429565b82525050565b60006157a6838361578b565b60208301905092915050565b6000602082019050919050565b60006157ca8261575f565b6157d4818561576a565b93506157df8361577b565b8060005b838110156158105781516157f7888261579a565b9750615802836157b2565b9250506001810190506157e3565b5085935050505092915050565b600060a082019050615832600083018861417f565b61583f6020830187615750565b818103604083015261585181866157bf565b90506158606060830185614772565b61586d608083018461417f565b9695505050505050565b600061588282614931565b9050919050565b61589281615877565b82525050565b600060c0820190506158ad6000830189614772565b6158ba602083018861417f565b6158c76040830187615750565b6158d46060830186615750565b6158e16080830185615889565b6158ee60a083018461417f565b979650505050505050565b600081519050615908816141b3565b92915050565b600080600060608486031215615927576159266141a9565b5b6000615935868287016158f9565b9350506020615946868287016158f9565b9250506040615957868287016158f9565b915050925092509256fea264697066735822122075c6e25ca2267d7ada4a646a947368a29e15d76db5da703326c047c4f3941e4e64736f6c63430008110033

Verified Source Code Partial Match

Compiler: v0.8.17+commit.8df45f5f EVM: london Optimization: No
TrendAppend.sol 622 lines
/**
 * 
TrendAppend Coin.  TrendAppend is the shoppable video platform and marketplace.  Share viral videos with friends and discover new products to improve your life. 
WhitePaper: https://coin.trendappend.com
Website: https://www.trendappend.com
TG: https://t.me/+7Ld-jg3TXhc5MmQx
Email: [email protected] 
twitter: trendappend
*/
// SPDX-License-Identifier: MIT

pragma solidity 0.8.17;

library Address {
    function isContract(address account) internal view returns (bool) {
        return account.code.length > 0;
    }
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, "Address: low-level call failed");
    }
    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        (bool success, bytes memory returndata) = target.call{value: value}(data);
        return verifyCallResultFromTarget(target, success, returndata, errorMessage);
    }
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }
    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        (bool success, bytes memory returndata) = target.staticcall(data);
        return verifyCallResultFromTarget(target, success, returndata, errorMessage);
    }
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }
    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return verifyCallResultFromTarget(target, success, returndata, errorMessage);
    }
    function verifyCallResultFromTarget(
        address target,
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        if (success) {
            if (returndata.length == 0) {
                // only check isContract if the call was successful and the return data is empty
                // otherwise we already know that it was a contract
                require(isContract(target), "Address: call to non-contract");
            }
            return returndata;
        } else {
            _revert(returndata, errorMessage);
        }
    }
    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            _revert(returndata, errorMessage);
        }
    }
    function _revert(bytes memory returndata, string memory errorMessage) private pure {
        // Look for revert reason and bubble it up if present
        if (returndata.length > 0) {
            // The easiest way to bubble the revert reason is using memory via assembly
            /// @solidity memory-safe-assembly
            assembly {
                let returndata_size := mload(returndata)
                revert(add(32, returndata), returndata_size)
            }
        } else {
            revert(errorMessage);
        }
    }
}

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IDEXFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _transferOwnership(_msgSender());
    }
    modifier onlyOwner() {
        _checkOwner();
        _;
    }
    function owner() public view virtual returns (address) {
        return _owner;
    }
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

contract TrendAppend is IERC20, Ownable {
    using Address for address;
    
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string constant _name = "TrendAppend";
    string constant _symbol = "TRND";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 1_000_000_000 * (10 ** _decimals);
    uint256 _maxBuyTxAmount = (_totalSupply * 1) / 200;
    uint256 _maxSellTxAmount = (_totalSupply * 1) / 200;
    uint256 _maxWalletSize = (_totalSupply * 1) / 100;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => uint256) public lastSell;
    mapping (address => uint256) public lastBuy;

    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isTxLimitExempt;
    mapping (address => bool) public liquidityCreator;

    uint256 marketingFee = 400;
    uint256 marketingSellFee = 400;
    uint256 liquidityFee = 100;
    uint256 liquiditySellFee = 100;
    uint256 totalBuyFee = marketingFee + liquidityFee;
    uint256 totalSellFee = marketingSellFee + liquiditySellFee;
    uint256 feeDenominator = 10000;
    bool public transferTax = false;

    address payable public liquidityFeeReceiver = payable(0x55b82447643a0443Eadd6129d3C7E971805a2c26);
    address payable public marketingFeeReceiver = payable(0x76Dc822c081055E08B9C307B98c7ee49b58e8c8F);

    IDEXRouter public router;
    address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    mapping (address => bool) liquidityPools;
    mapping (address => uint256) public protected;
    bool protectionEnabled = true;
    bool protectionDisabled = false;
    uint256 protectionLimit;
    uint256 public protectionCount;
    uint256 protectionTimer;

    address public pair;

    uint256 public launchedAt;
    uint256 public launchedTime;
    uint256 public deadBlocks;
    bool startBullRun = false;
    bool pauseDisabled = false;
    uint256 public rateLimit = 2;

    bool public swapEnabled = false;
    uint256 public swapThreshold = _totalSupply / 1000;
    uint256 public swapMinimum = _totalSupply / 10000;
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
    
    mapping (address => bool) teamMember;
    
    modifier onlyTeam() {
        require(teamMember[_msgSender()] || msg.sender == owner(), "Caller is not a team member");
        _;
    }
    
    event ProtectedWallet(address, address, uint256, uint8);

    constructor () {
        router = IDEXRouter(routerAddress);
        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
        liquidityPools[pair] = true;
        _allowances[owner()][routerAddress] = type(uint256).max;
        _allowances[address(this)][routerAddress] = type(uint256).max;

        isFeeExempt[owner()] = true;
        liquidityCreator[owner()] = true;

        isTxLimitExempt[address(this)] = true;
        isTxLimitExempt[owner()] = true;
        isTxLimitExempt[routerAddress] = true;
        isTxLimitExempt[DEAD] = true;

        _balances[owner()] = _totalSupply;

        emit Transfer(address(0), owner(), _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure returns (uint8) { return _decimals; }
    function symbol() external pure returns (string memory) { return _symbol; }
    function name() external pure returns (string memory) { return _name; }
    function getOwner() external view returns (address) { return owner(); }
    function maxBuyTxTokens() external view returns (uint256) { return _maxBuyTxAmount / (10 ** _decimals); }
    function maxSellTxTokens() external view returns (uint256) { return _maxSellTxAmount / (10 ** _decimals); }
    function maxWalletTokens() external view returns (uint256) { return _maxWalletSize / (10 ** _decimals); }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }
    
    function setTeamMember(address _team, bool _enabled) external onlyOwner {
        teamMember[_team] = _enabled;
    }
    
    function airdrop(address[] calldata addresses, uint256[] calldata amounts) external onlyOwner {
        require(addresses.length > 0 && amounts.length == addresses.length);
        address from = msg.sender;

        for (uint i = 0; i < addresses.length; i++) {
            if(!liquidityPools[addresses[i]] && !liquidityCreator[addresses[i]]) {
                _basicTransfer(from, addresses[i], amounts[i] * (10 ** _decimals));
            }
        }
    }
    
    function clearStuckBalance(uint256 amountPercentage, address adr) external onlyTeam {
        uint256 amountETH = address(this).balance;

        if(amountETH > 0) {
            (bool sent, ) = adr.call{value: (amountETH * amountPercentage) / 100}("");
            require(sent,"Failed to transfer funds");
        }
    }
    
    function openTrading(uint256 _deadBlocks, uint256 _protection, uint256 _limit) external onlyTeam {
        require(!startBullRun && _deadBlocks < 10);
        deadBlocks = _deadBlocks;
        startBullRun = true;
        launchedAt = block.number;
        protectionTimer = block.timestamp + _protection;
        protectionLimit = _limit * (10 ** _decimals);
    }
    
    function pauseTrading() external onlyTeam {
        require(!pauseDisabled);
        startBullRun = false;
    }
    
    function disablePause() external onlyTeam {
        pauseDisabled = true;
        startBullRun = true;
    }
    
    function setProtection(bool _protect, uint256 _addTime) external onlyTeam {
        require(!protectionDisabled);
        protectionEnabled = _protect;
        require(_addTime < 1 days);
        protectionTimer += _addTime;
    }
    
    function disableProtection() external onlyTeam {
        protectionDisabled = true;
        protectionEnabled = false;
    }
    
    function protectWallet(address[] calldata _wallets, bool _protect) external onlyTeam {
        if (_protect) {
            require(protectionEnabled);
        }
        
        for (uint i = 0; i < _wallets.length; i++) {
            
            if (_protect) {
                protectionCount++;
                emit ProtectedWallet(tx.origin, _wallets[i], block.number, 2);
            }
            else {
                if (protected[_wallets[i]] != 0)
                    protectionCount--;      
            }
            protected[_wallets[i]] = _protect ? block.number : 0;
        }
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(sender != address(0), "BEP20: transfer from 0x0");
        require(recipient != address(0), "BEP20: transfer to 0x0");
        require(amount > 0, "Amount must be > zero");
        require(_balances[sender] >= amount, "Insufficient balance");
        if(!launched() && liquidityPools[recipient]){ require(liquidityCreator[sender], "Liquidity not added yet."); launch(); }
        if(!startBullRun){ require(liquidityCreator[sender] || liquidityCreator[recipient], "Trading not open yet."); }

        checkTxLimit(sender, recipient, amount);
        
        if (!liquidityPools[recipient] && recipient != DEAD) {
            if (!isTxLimitExempt[recipient]) {
                checkWalletLimit(recipient, amount);
            }
        }
        
        if(protectionEnabled && protectionTimer > block.timestamp) {
            if(liquidityPools[sender] && tx.origin != recipient && protected[recipient] == 0) {
                protected[recipient] = block.number;
                protectionCount++;
                emit ProtectedWallet(tx.origin, recipient, block.number, 0);
            }
        }
        
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        _balances[sender] = _balances[sender] - amount;

        uint256 amountReceived = amount;

        if(shouldTakeFee(sender, recipient)) {
            amountReceived = takeFee(recipient, amount);
            if(shouldSwapBack(recipient) && amount > 0) swapBack(amount);
        }
        
        _balances[recipient] = _balances[recipient] + amountReceived;

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function launch() internal {
        launchedAt = block.number;
        launchedTime = block.timestamp;
        swapEnabled = true;
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender] - amount;
        _balances[recipient] = _balances[recipient] + amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }
    
    function checkWalletLimit(address recipient, uint256 amount) internal view {
        uint256 walletLimit = _maxWalletSize;
        require(_balances[recipient] + amount <= walletLimit, "Transfer amount exceeds the bag size.");
    }

    function checkTxLimit(address sender, address recipient, uint256 amount) internal {
        if (isTxLimitExempt[sender] || isTxLimitExempt[recipient]) return;
        require(amount <= (liquidityPools[sender] ? _maxBuyTxAmount : _maxSellTxAmount), "TX Limit Exceeded");
        require(lastBuy[recipient] + rateLimit <= block.number, "Transfer rate limit exceeded.");
        
        if (protected[sender] != 0){
            require(amount <= protectionLimit * (10 ** _decimals) && lastSell[sender] == 0 && protectionTimer > block.timestamp, "Wallet protected, please contact support.");
            lastSell[sender] = block.number;
        }
        
        if (liquidityPools[recipient]) {
            lastSell[sender] = block.number;
        } else if (shouldTakeFee(sender, recipient)) {
            if (protectionEnabled && protectionTimer > block.timestamp && lastBuy[tx.origin] == block.number && protected[recipient] == 0) {
                protected[recipient] = block.number;
                emit ProtectedWallet(tx.origin, recipient, block.number, 1);
            }
            lastBuy[recipient] = block.number;
            if (tx.origin != recipient)
                lastBuy[tx.origin] = block.number;
        }
    }

    function shouldTakeFee(address sender, address recipient) public view returns (bool) {
        if(!transferTax && !liquidityPools[recipient] && !liquidityPools[sender]) return false;
        return !isFeeExempt[sender] && !isFeeExempt[recipient];
    }

    function getTotalFee(bool selling) public view returns (uint256) {
        if(launchedAt + deadBlocks >= block.number){ return feeDenominator - 1; }
        if (selling) return totalSellFee;
        return totalBuyFee;
    }

    function takeFee(address recipient, uint256 amount) internal returns (uint256) {
        bool selling = liquidityPools[recipient];
        uint256 feeAmount = (amount * getTotalFee(selling)) / feeDenominator;
        
        _balances[address(this)] += feeAmount;
    
        return amount - feeAmount;
    }

    function shouldSwapBack(address recipient) internal view returns (bool) {
        return !liquidityPools[msg.sender]
        && !inSwap
        && swapEnabled
        && liquidityPools[recipient]
        && _balances[address(this)] >= swapMinimum 
        && totalBuyFee + totalSellFee > 0;
    }

    function swapBack(uint256 amount) internal swapping {
        uint256 totalFee = totalBuyFee + totalSellFee;
        uint256 amountToSwap = amount < swapThreshold ? amount : swapThreshold;
        if (_balances[address(this)] < amountToSwap) amountToSwap = _balances[address(this)];
        
        uint256 totalLiquidityFee = liquidityFee + liquiditySellFee;
        uint256 amountToLiquify = (amountToSwap * totalLiquidityFee / 2) / totalFee;
        amountToSwap -= amountToLiquify;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        
        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance - balanceBefore;
        uint256 totalETHFee = totalFee - (totalLiquidityFee / 2);

        uint256 amountETHLiquidity = (amountETH * totalLiquidityFee / 2) / totalETHFee;
        uint256 amountETHMarketing = amountETH - amountETHLiquidity;
        
        if (amountETHMarketing > 0) {
            (bool sentMarketing, ) = marketingFeeReceiver.call{value: amountETHMarketing}("");
            if(!sentMarketing) {
                //Failed to transfer to marketing wallet
            }
        }
        
        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                liquidityFeeReceiver,
                block.timestamp
            );
        }

        emit FundsDistributed(amountETHMarketing, amountETHLiquidity, amountToLiquify);
    }
    
    function addLiquidityPool(address lp, bool isPool) external onlyOwner {
        require(lp != pair, "Can't alter current liquidity pair");
        liquidityPools[lp] = isPool;
    }

    function setRateLimit(uint256 rate) external onlyOwner {
        require(rate <= 60 seconds);
        rateLimit = rate;
    }

    function setTxLimit(uint256 buyNumerator, uint256 sellNumerator, uint256 divisor) external onlyOwner {
        require(buyNumerator > 0 && sellNumerator > 0 && divisor > 0 && divisor <= 10000);
        _maxBuyTxAmount = (_totalSupply * buyNumerator) / divisor;
        _maxSellTxAmount = (_totalSupply * sellNumerator) / divisor;
    }
    
    function setMaxWallet(uint256 numerator, uint256 divisor) external onlyOwner() {
        require(numerator > 0 && divisor > 0 && divisor <= 10000);
        _maxWalletSize = (_totalSupply * numerator) / divisor;
    }

    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner {
        isTxLimitExempt[holder] = exempt;
    }

    function setFees(uint256 _liquidityFee, uint256 _liquiditySellFee, uint256 _marketingFee, uint256 _marketingSellFee, uint256 _feeDenominator) external onlyOwner {
        require(((_liquidityFee + _liquiditySellFee) / 2) * 2 == (_liquidityFee + _liquiditySellFee), "Liquidity fee must be an even number due to rounding");
        liquidityFee = _liquidityFee;
        liquiditySellFee = _liquiditySellFee;
        marketingFee = _marketingFee;
        marketingSellFee = _marketingSellFee;
        totalBuyFee = _liquidityFee + _marketingFee;
        totalSellFee = _liquiditySellFee + _marketingSellFee;
        feeDenominator = _feeDenominator;
        require(totalBuyFee + totalSellFee <= feeDenominator / 2, "Fees too high");
        emit FeesSet(totalBuyFee, totalSellFee, feeDenominator);
    }

    function toggleTransferTax() external onlyOwner {
        transferTax = !transferTax;
    }

    function setFeeReceivers(address _liquidityFeeReceiver, address _marketingFeeReceiver) external onlyOwner {
        liquidityFeeReceiver = payable(_liquidityFeeReceiver);
        marketingFeeReceiver = payable(_marketingFeeReceiver);
    }

    function setSwapBackSettings(bool _enabled, uint256 _denominator, uint256 _swapMinimum) external onlyOwner {
        require(_denominator > 0);
        swapEnabled = _enabled;
        swapThreshold = _totalSupply / _denominator;
        swapMinimum = _swapMinimum * (10 ** _decimals);
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply - (balanceOf(DEAD) + balanceOf(ZERO));
    }

    event FundsDistributed(uint256 marketingETH, uint256 liquidityETH, uint256 liquidityTokens);
    event FeesSet(uint256 totalBuyFees, uint256 totalSellFees, uint256 denominator);
}

Read Contract

allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
deadBlocks 0xfabb0b4f → uint256
decimals 0x313ce567 → uint8
getCirculatingSupply 0x2b112e49 → uint256
getOwner 0x893d20e8 → address
getTotalFee 0xf1f3bca3 → uint256
isFeeExempt 0x3f4218e0 → bool
isTxLimitExempt 0x8b42507f → bool
lastBuy 0xc1adf7bc → uint256
lastSell 0x6f4ce428 → uint256
launchedAt 0xbf56b371 → uint256
launchedTime 0x5804f1e4 → uint256
liquidityCreator 0xdae39f92 → bool
liquidityFeeReceiver 0xbfa21d6a → address
marketingFeeReceiver 0xe96fada2 → address
maxBuyTxTokens 0xbafe446b → uint256
maxSellTxTokens 0x234e9494 → uint256
maxWalletTokens 0x63a803e1 → uint256
name 0x06fdde03 → string
owner 0x8da5cb5b → address
pair 0xa8aa1b31 → address
protected 0x46d7edaa → uint256
protectionCount 0x9b02c402 → uint256
rateLimit 0x61e08e72 → uint256
router 0xf887ea40 → address
shouldTakeFee 0x332402f8 → bool
swapEnabled 0x6ddd1713 → bool
swapMinimum 0xf8821a62 → uint256
swapThreshold 0x0445b667 → uint256
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
transferTax 0x8124f7ac → bool

Write Contract 25 functions

These functions modify contract state and require a wallet transaction to execute.

addLiquidityPool 0x492a937b
address lp
bool isPool
airdrop 0x67243482
address[] addresses
uint256[] amounts
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
approveMax 0x571ac8b0
address spender
returns: bool
clearStuckBalance 0x56a227f2
uint256 amountPercentage
address adr
disablePause 0x584f969a
No parameters
disableProtection 0x421dd7c7
No parameters
openTrading 0x34848b9a
uint256 _deadBlocks
uint256 _protection
uint256 _limit
pauseTrading 0x1031e36e
No parameters
protectWallet 0x095db78f
address[] _wallets
bool _protect
renounceOwnership 0x715018a6
No parameters
setFeeReceivers 0xa4b45c00
address _liquidityFeeReceiver
address _marketingFeeReceiver
setFees 0x04a66b48
uint256 _liquidityFee
uint256 _liquiditySellFee
uint256 _marketingFee
uint256 _marketingSellFee
uint256 _feeDenominator
setIsFeeExempt 0x658d4b7f
address holder
bool exempt
setIsTxLimitExempt 0xf84ba65d
address holder
bool exempt
setMaxWallet 0xabe57e70
uint256 numerator
uint256 divisor
setProtection 0xd6860142
bool _protect
uint256 _addTime
setRateLimit 0xc287184e
uint256 rate
setSwapBackSettings 0xd0889358
bool _enabled
uint256 _denominator
uint256 _swapMinimum
setTeamMember 0x60bba03d
address _team
bool _enabled
setTxLimit 0x50713935
uint256 buyNumerator
uint256 sellNumerator
uint256 divisor
toggleTransferTax 0xd912b2ce
No parameters
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
transferOwnership 0xf2fde38b
address newOwner

Recent Transactions

No transactions found for this address