// SPDX-License-Identifier: MIT
/*
Website : www.hpas10i.com
Twitter : https://twitter.com/hpas10inu
Telegram : t.me/hpas10i
2cZZS5S6SSSPPNSYs; .: . :: cs;:;:;:22cccssc;:sc255255cs256S666S665ccc2SSYSSSS66552;cs5SS55ccS6S665cc665665Y6PYYSYSYYZ
YDPs.S6PZPDEN5Y : s;22s:s;;;562ccc522222SZSSc.:;c5556S626ZYZSSSYZZPHHNNNNSY:;.;522cPYEDHDDPs2YSY5S2NHHHEEE
Z2sS6HEZZNN2D ;;s;: ;:;;;; ss;::.sccs22SZ66c:c25YS6YPZDPPPEDDDZPHDDDSP6ZSZPZY652ZSY6DPHHDEPZHPHDEDDDEEE
YZYED65ZN5H : :;::;.6Scss;ss22552256s:;:5DS2522566SYZDPPZZZYZZPDPDDSZs62556PZPS;:6265PZDD52DYNEHEEDDDD
2PYS6YEPN s;22 ss22;::.;:;;cc662s6SSS2cc2556Y62666SSYYSSPZPPDPPPSZEDZP6Y:2s2cs ZSNEPZNEZZSYEPDZDZDZEDDDD
Y6YDNN : s5 s:s;cc;:. ;:cscs22css;;:566S6S6S522sc22cSEPYY6SPZPPPPEDYPEDPDYD6Y:s :::2sY5PSYSSSYSZSEPS5EPEDEED
;PZHN cc;; :: : ;:s;22: s;22522cc22ccs226S65cssc; ;22c6PS5YZPEPZPPPHDPDDDEHDE5Y6Yc6ZSs:: DY66YYPY62ZSEPEPPPDDE
cDN6N . . :::.::ss25562s562s6SYZYYYY62c;ss5Y65SYYEPYZPPDDDDDDDDYPYPs5S6 :YSY665DPSSEPNEHDEDHEPPPZE
ZNN ;:sss;. c5;:s;YP6c55666S5566YYZZS666YZZNDPDEDDPZZYZZZ5S56:c6S66;:P6;:cs2c..Z5EZDDHHNNNHE
N S : Y6Y6c;2555;.;s: :.56S6526Y66S6SYSY6566666DPEDZPDPZZZDNNDD6ZZP265622S5ZS52YZDDY5NPDD 2sEZE
D : : ;: :.ss2c552ccsc22cc;s:6ZSSSS6665566Y666SS6SEZDZ6YDDHEPP2SDEDEZP26s2s:2sPYHEZZS6s;s;DDEDS5Z6P
s.: 5556: ::;:ss 6Y5c2s6YS5SSSS6SS6YPPDZZYSYY6s2PYEDPDDPDDDDs2YS6Y6YSS ;22PS62PYSY25HPS6:.HDEDHDE
. c:YYs; ;s.. ::66YYSSSSYPYS5c6ZYYYYYY5s256DPHDDEDDEDYP26PY26s56S66scPS5c5cc2.:DYNNY6Z6DPPPE
. :.. ;: s2cs52DHS25c5552YDS62s255665SPS5526SPHDDDHEPDDEEDYPPDNNZD6Z6ZDZ52.:NPPSHESY5cDYNNNNHEPPE
. 52: s.DPHNZZ65cscss.SS5c6SSSSSS6ZDZYS6SPY6YYPDDDDEDPPPPDPSYYZDZDEYDSY.::;EPcs:.NDHENNZP; HPDDPPEED
. s.s::; ;s c;662c25cc55SSYYS6YZY6S6YYPEPPPPPDDDDEDDP56DPHHcSc5.;5s62HHZYEYPZDDNNDDHDDDDDEDD
:; ;;c2 ;.S6S6YZS6c;56526SSZS5S6YYZPPDPPDDDEDDDZZ6YNDHE.2 : 2cPSZY6SPYEPDPHEHHPPDPEDEEE
:.. :::.;.22SY2:2cYY62SYYY65SSZZYPSc6YYYPEPPZZYYZDDPPYZYZPPED 2c266NDDPNNYPZSDZEPDPEEEEEDDDDDE
::;:. . :.ss2cs:;;scs;6YS652SZYSS5SSSYYZZZPDDEDPZSZHEPPSYED6Yc5HDHDZPDHs22sDZEDHEDDEEEDDDDDE
sss:: :.;.66652c226SSSPDS65c2c6SZDZSZDPPPPPPDDDDPPPSYSZEDYZNHEEDD6Y:sPYPZPZPPEEDDDDDDDDE
. : . ss. : s;6Y626Y5ccs6Z6665SYS26ZZPPDPDPPPPPPPPPDDZZ56DPNHHEPPYZDEDDNHHEEEDPEDDPDDEEEEE
. s;s;;;cc225c62YSS6YYSSYZY6YZSSYYYSZPZZPDDPPEDDDDPPPDDDPYZYYEPHEEEZPYYEHEEEDHEZPDPZYNHHEEDEDD
;:s;2s62652ccscscs66522s6YSY662c6YYYY66SYPPPY6YZZHDPPPPPPZZPPYZZZEPEDEDPDEEDEPDEEHHPPHDPPZZHPHDEEE
.. :::.s;22ss. cs6YSS5522s.;;26YZYSSS6cYEDHDDDZZYPDDDDPPZZHDDDDDDEEHPD2555c25cEYNN26DZNHEDD
;.;.:.s:sscc2c65s.s5cc252c66666S656565SZYPZPPDPYZZYYYSYHEEEDDEEDD6Y6Y5SDEs2S2HSEH6P65HYNHH
: ; : ;:25ss2sSSSS662c2655SY662sss26YDZSYDPHEEDPDDDDEEEDDEDPPZPEESPDEZPSZc5Y5Z2HH2Pss6;P6N
. . cc52cc. ;:2c5S22cscccss;s2252c55SZY6YEDHEEEEDDDDDDDPPZZPPYZDDSZZP5Y6Y2562D6NHZNc6EYNYN
s; ;:s:csss::;;;:cs26cscccc: . :s;;ss26556SYDPPZPPDPZPDDSZYZPPPDDDPZs2YPs66Sss6sESPYYE;5c;ZcN
:.s:: . sc2225552c22256S555552ccccccccs:s22256YEPPPHEHDYY6SZYZYYYPPPDYDs6c5;;Z2P6DPYZ5P:cP2N
. ::. :. ::ss;;sc;s ::::: ..;;scss2SYZYSSS6SS56YZDPZZDDEEYZZZDDYZEDPE5P2Ysc;:P6EZ65YSNN:S N
;: :;. ;:ssc2;;:; . :;::. .:::s2cs5SZDZZS25S6SYYZHDDDPPSYZY66PPZE2Yc6;sY66cS2PSEZPD6H 2
. ;.;;;s2c22s2:.22::.: . ::ssssc5s::;: sSSPPPY666666YSHDEEPPYYZPNHPEs6c6c2ZS2c6sDYS6EDENZH2
: ; 2s:s s;sc:;.. . ::;:cs5YYY5s;:::;s:::s2SSSYSSZYHDEDHEDEDDYY6Z2Ys25552Y6Z6HDPZDPDDNNY
s.css5 :. ;;;:. .:5PYSSS625S6S622ccc2S552ZZHEHEPZc56YYPc5EE..PYZYDZY6PYPZPZE
. 2s;;:s ::scc2 ::s:c;cs6S65c;6YDENNHDDDHNNNNNNNNNNHHEDDPZZEDEDPPHEDEDEHN2SPP2656HD555cY5ZYPYPYE
. .: ;.YPHNNNNNDZDDEHEDY5SYYPPPDEDPPDEHHHHHHHEDDYZEDEHHHZD ;EE2SPP665562PSDPPYNDH
;: :: .. . . ;;6S662sYYPYHNNNHEHHHHDPPYPHDZPPDDDDDDDEEEEDDDDDDDDDEDDPPEDDDZEPE5S6Z65;;PZY6DYZZ65P6E
. .. . . . :.cs: ; :.Y6YY2sEPNNNHNNNNEEEDNNEPHESs6YYYPEDDPYZZDHEHHHHHEEEDDDDDDDDDDDDDDDDDEDDEDDEEHHNSPc5 ZYSSS6DPZPS6EYE
.:::.. . ;::. ;:s;:: c;;:: . S265PZNNHENEPYEPNNNNNNNNNNEPYYZP6265SYPDS522226Y2:26YDDDDPPDDDDDEEEEEDDDDDDEEEEEEEEEEDEDE2S2SZPHEYZPPZYYY66P5H
:. ;s:. cs:;:;6cs:522sP5NNDZHENNEHPPYSPZHEDEc2c2ccs:66DHYYZZPZHNDPDHHHHENNNNNHHHEEEEDDDDDDDDDDDDDDDDEENNNNNNEEDDDDEENNNNN5YZD;s2cDDYSD6N
:.... 2: . .:s; 6cs:s.NYZ6NNDPPZ;;2cPYDPHHPDYZ6S..s;ZYDDDDNNNHHEHHHEEEEEEDEEEEDDDDDDDDDDDDDDDDDDDDEHNNNPZ Y5NHHNNNNNNNNNSY26ZPPZ62Z6DSH
.; . ..:c;;:. s;c;s;;;ss5c. . 5s626sD6HE6YssPZEENNNHHHDDDEDEDEHHNNNHHHEEDDDDDDDDDDDDDDDDDDEEEEHHHEEDDDDEHNNNNNNNNNN NNNNNNEE56cs666YPDYSZYYSPYDYH
... :: :::s:. ;:;;s; ;:Z5s; :.;;Y5DSZ6NENEHHZDDDNHHEDDEDDDDDDEEEHHHHEEDDDDDDDDDDDDDEEEDDDEHNNNNNNNNNNNNNHHHHD6626PPY5 cSNNNP.. 56:sDZPZHE66S6ZYDPPYZ6E
:sc;.. :.sS22. .:;;;2; .. .. : 62YYS65cc:c:6sZ6NDEDDDEHHHDDDDEDDDDDDEEEEEDDDENNNNNNNNNNHEEEEHHHNNNNNNNs;. ;5DPHHNNHDcs: 6NNNN.: 6YEDZZ2cYc5s2c52YY65ZYY5EZE
s2c2 .. :;s5s:s:;:;c;.:2252;s;;::;;s:c:s;;sZ6EZY6HPEPHDDDDDDDPPEEEEDDDDDDDDDDDEHNNNNNc: NNNNNNNNNNNNNN. sZSYZHZ;22PNNNNNNNNNN66 s.:: c:HZDZPYPZZZS5Y5HZH
.s c.cs6SEENENNNHNNNNNNNNNNNNZ6YZYY2s5652ccs.s2s:cS6S66SYSc565s;..5s62ssS5PYNHNHHEEEEEDDEEEEEDDEDDEEHHHNNNNNNNsS .s2YDPP2s cYHENPYPHDcs s;5c62s.D6PYZYZZ65DZDYHPE
Z:: Z6NNNN6cDEYS2;YSDDDDHHHNNNNNHEDEY666SZS6c.c65c6PZYPEP66c22222csS5ZZPPDYPSS5PYEDDPDDDDDDDENNNNNNNNNNNNHN26 s s5SPZPENNNE;: ..2s.; ;:;s:: . : : c.2:625cYS65Y6DYEPE
S5SDDNNDPs:PZc:ss662s65PDPPDDEEHHHNHNHHHHHHEDPZPEHHNNHYSss.;.. .:s22Y662cs5ss;65ZSDZEDHEDDNNNNNNEENNSD ... :sYNNNNNNHc :sc6PSY2 : : : 5;6s6cZ6ZSDPPSHPHDE
6SYss 5cZPHENNNNNHEEEDEDDDEEEDEEEHHHHEHNNNNNNNE65ss . :. ;.;;PSHENEDZDPNNHDNNEN;P ..PNNNNNNNS: ::;. .;Sc : s:6c6sScZ6DYDZY6EZHDEDD
EHNNNZ6HENHNENHHHHEEEEEEEEEDDDDDDDDEEDDDDEEEHZYs. ;:2cZ25; 2;S6:.5sDN 6 . ;sPHNNNNNHY6 .sc6c .. : ; : 2:D6PSZ6DZEPHDEEDDD
2::. PZNHZSPZDEDDDDDDDDDDDDDDDDDDDDDDDEDDEEEHDH5. .. 6;5sY5;s:;EZ6Y D ..:;::sscsYPYSYYZYYZ2;:.:s . : 2:2:S;P6PYEZHPHDHEDDDDD
ENNHDNEEEHNNNEEEEEEDDDDDDDDDDDDDDHNNNNNNNNNNNNNNNN5S2s. 6 Z2PZSZ5Ss:DH5N ss : s.P2DSY6DSEPDPEDDDDDE
PDDEEEDNNNNNNNNNNNNNNNNEHHNNNNNNNNNNEDPDHP6SY6S; ;s6c 6 H6PYSZcY .SScE : . :. :. : c:c.5:S2PSPSDZEPEDDDDDD
ZDPDHNNNNZD.:. NNNNNNNNNN5 6cs: Y:ESEPHN:6 sc ; sc . ;;sssc .: :.;:2;; SsScZ6EPDYHDEDDDDDD
NNNNN.5 :c 5c:: c.D2YcY626.2 ; ; 65 : :: . . ::;. 5;2;P6PSY6DSEPEDDDDDD
:. cP :.:::. c ; 2.Y5c5YZsS.5 : :.:. :::.:. c:ScY2Y2Y6Z6DSNDDDDDEEE
cs2Ys6 . ; 2:P665666D.6 6 ..:. ;;;:. :...s:ScS2S2DYZYPYEYNDEDDDEED
s: 22:: . s. 2.; ScS565SD;Y:Y .:::::: s:;;css:c;2s5sY6PYY6Z5HZHDDDDDD
22sc::..:::: . 2; c.s 2.6cY66PcP s ; s:s2 . . ..s::::;5cs:s:S2Y6Y6ZSZ5EYHDDDDDD
25;; .sss. ..5; ; ; 5;Y5ZY6D ::;6Z .. 2s56 . ..;: s::. .s;::2s2s2sSc2cS56cP5HZEDDDDDD
.: s;6s YcZ52:ZY 2.c22c5;sc;;:sc26 . s;:;::.. .2s::s;;;:.2ss:Z6ZS2cZ6ESNPEDEDDDD
;.s: 6 : c:ZP 2:s;;;ss;6225;;s2s5;c.: ..;:..::;: :.ss2c;::.2s2sS2S652Z5Z2HZDPDDDDD
s:s; . 5 2:ZSZD s ;sc..: S5c2;s25;s:s : .cs::;:;; .;:s:622sY22cS6Y6P5NPEEDDDDD
s;2; 6.NYPZ:2;6.s:; s.;:2csscc:s;s.:s2.; s: .;::..:Y2 : .cs2ccs2s5sY6Y6Y6P2NHEDDDDDD
.;:;: : s D5ZZs5s5 ; ; S6;;s:s;.::;;c:;;2 : :..:::::;;S2sssscs52;;s:Z6DZS6S26sDSNHEDDDD
;: . c 6;5525;2s5..c:2c:;: S5c25625;sc6 ;:.:s;::ssc;s:22sccs52;s2sZ652S5PSNPEPDPHEEDD
:...:::; ; 6s62scc2.; s cs c;526Y:;;sscs5:2 ;:.:;::. ;:s:2s:;::656652c;s;Y5EYHDNNY6NDEDE
..;:;:::s:.: . s:::;:22;:2:S6;cs;2css..;s;s :2 ;c s;;: ::;;s;ss65HZc265ZY66ssYSPYY5EYDD26s:DSDPE
. .;:s;;s . ;.s;;.s:c:c ZSs226::cccc;s :.;:s . . . . . ..s;;:2ss;s;Z625666525ZZYSPYP6HZDE5SZSHDEDE
: . :..::: ;.: c.6sYcPS6S;2sc65YYYZSP26c5sc;s .; ;:: s:;:::5ss;2s55YS2566ZY552c52ZSNDHNNNNNNNHEE
s ;;;s :.:::. s; s Y22:YcDSDE6D5SS5ZYPP5S;c;2:; .::; .:;:. ..;5s;:.:5c65ZS65c5YY22SS26PYHZ2;DSDDccNNs:PZE
;.: . ;... :.: ; c 6;S;PSDEYE scs6cZS56c6s2 :s:: : : .::::.;ssssc262;;ss6652s;66PZPPZZ56SS6Y22 Y5EZHPEDNN65NENEE
:;s:s . s:. c.s 5;Y2PZ556Y:2 : Z6DDSSc2c6c5s2;s;c . :s: .:. . :s. ;;cssc622cccY6YS66PY2626PZ;ssc5cScPSPYPDEH2sHPEDD
:;;:; : .. : .. . s 6sc:2;6S c:YD;2; 6;Z6PZEEPNc65Y56ccc2cs:.:;;sss. ::::::::;;sssscc225252s2HP2566YY6Sc255S665Z6DYPYHEZD56HZNEDDD
:::;s.::; . :; :...;: c c:c;52 .: YsZD ;s:5;6sEYHDHN;2 ;:;..:;;;:.;s:. ;;ss:;sss: :ssc266SSYYDZ66PY25ZSSYSS22;:65Y6Y6NHZYNHDN: NDHDDED
;;:;;;s;s.; . :.:.:. 2:c:s:..:;; Y2SZ;2s:2:5;YcPYENZN .::: scSP5s :. ;cc2cssss222cssss2css6c:sscc2ZY62Z2EZDDcsDY::S5HPEEENZ
.::;;;sssc5.: .: s: . . c.c:2c::; 2;c6 ::.6;Y2P5DYDENN.2 . .... .;: .:::;cs:;sc6s..:;;s6522YYEP 2c2c YcNE:2ZYHZNNNNHEEHPH5
;;:;:;s ;s;s:: :;;s.: c: . 6s52c;c;5226.: c YcZ5EPDDENPN .: ....s52c;;:.. :55YS666556PY2565::25ssYcNHsc;.YcHPDEEHDHPE5
::::.;s... ;;:;;;:::s.: : . 2:: s.S5ss;s::. c.6sEPHDEDEHHN:5 ;c;: ;256565s;:;5265;scscs:sc5HPPYSY565:EYPDEDNDHHENYPYZ66D
:..:.s;ss:::;;s::;;;;.: s. . s : s.2:62cc: 2c65Y5EZHDEDDDDHNNs5 :c26; .;s2c25S52s.. .cc62:; ::Z556 :s:P2HP66NNDDYD;26Y5cD
:::;::.;;sc..;;ss;;;:sc.: c. ; . . s 2;. Z6NNNNNNNHEDEHHNNNNN s6: .::: .:s. .ss;s62scss.;SSZY222s62NN2ZssD2NNZYZ6PZ6Z6PSPYSN
;;;:;:ssc2 ..s2:.:.sssc;;::. s:: . 2 Y2EZPSEPNNNNNHHHHEDEHNNNNNYD .. ... ;5Y62: .:s655c;s5556PY2s :EYNEcY s HY526cNHHNDN6D:.S
:.::;:;:;;scss ;s;:;;ssssss::...: .s;s. Z;NZHYNENHNNNHEDDDDEHNNNNNYD .::: ;5YPs c26: .:2s.:cs;;;s::cs662sc;ZSPH :6:E6NHNNNEPP5Y ; .Y
.:::.:.;;;:ss.: :;ss;:::ssssss;;:: .sYS6s D2NDNENHNHHEEEDDDEENHNNNHN : ss: ;ssss;cc: ;26S65566Y; .cscs;scc522cY2:: 2:. EE .. Y;E6 2;ZYPEHNDES
:.. :.;:;;;;;ssc;:::s;ss;;;;;s;;.. :2YNN62. . P2NHNEHEEEEEDDDDDHNNNNEN : ;;;s. ;5 ;. .;c5Y5 . ss22s;..;:ssPYZYsc22S5NHcS . Y6DDD6NHYZYPPD6
::.::s;;:::ss;;;s . . .;:. s2NNNNNNND62 Y6PSNDNDHEHEDDDDDDHNNNPN;s:5 . . . c2PNcc;;: : 2P2:ENZ5c;ZEY5552css .56S6.scss. .2sY565ZPHE52 52NN5ZNENPcs. NDNHZPSSE
.. :.:.:.:::.;sscc2;s 5S22ss::. YYNNNNNNNNNNNNNHHEEDDDDDEHNNNN S . 5cc;5Y.:. s;; 2Ss.:s. 5Ss;;sc2c;5PYSDNS .ss .2sc::.5;.:c6ZY: csc6sc;:NEZ56sEDDEDDH
::::.:::.;:::;;::scsc;.2cc225cc:.:::; s csNNNNNNNNNNNNNNNNNNNN 2 :: 26 62cs:; . s;;.;;5S55c:6YYDZ6662sss;: :66cSND62 ... s:2;52DPc256EDHENN . Z5NHNNEEEDDD6
:.:.:::.;:;;;;;;ss;s:: :c: ;s: :;;;. :5: . ..;. s:cc22HDEEHN2Z . :: ;; 6s6c;;;sc5 : SZ6c5556s ZN6ccss;;sc2c2cs5PS;cY6cs c;Y6NZPZ6ZZSSc2ss2YPNEEZY6NEPPZYNNP
. ..:::.;:;;:.;;ss::;s.. . :scs;. ...;522s ;scs . . 52 ;.6cSY;:;c: 62YYSYYSYZY666SP6:YNPYZDHNNNDc26555sc.: ; Z2Z6.. ZSEENNZPHENN55S5PYY6PYH
.:.:::::.s;;;;:;;;;ss;;sc:;ss::c55522cc; ;sc2;. c; NP.:cs 22 22 Y5PD . 5622s;;.PPDP5c: 26DEDPS65s26YNP6c.:: ;ES.. c: Z5ND5YYYES YZYY 5sss5sY5NHDPE
.;::...:.;;;:ss;;sssss;s2;;..:: . ::; . .PSY2 cc6c cs S6 SY22: 255266. 6Ss:;::.. 2YPDEHNNDDScs.::5EHHZ c22c: ;.. 6sZYNN66DZHPs; Y6NDNHNHNEPZHEE
.:::.;;;:;;::;;;;::;ss;sss2:: ;css:s;:. . . c: Ss:sss;::: EP26 : sc;;; :. c6YPPPEEHHHHHNNNNND2DNNNNDS . .:cP6.: ; : ; 6; 2sDPNNNNPYNEDZDPPPEDEDD
..:.;:;:;;;;;;;;sss;ssscc2;s::sc ;:;. :sss: .;. .5; :5; ;: :. : ;: :.; . . 65PPEDNNNNNNNNNNNNNNNNNHPY6ccs ScY562DDNNNDZ5ZY2666PYDZNEPPDPEDD
.:.::::;:;;::;;sssss;ss;;:;:; .;;25 :ccP6;sssss:::::: ;:csYSHENNNNNNNNNNNNNNNNNHEHP62c;.scss cs22 :. c:5sscNPPP :NNNNPEHHSSDSNDNHEDEDE
.:::.;:;;s;s;;:;:;;;;ssssssc2;s :;c6; :s2Ss :sNP6c ..;.;cc22.. . DZNNNNNNNNNNNNNNNNNNNNNNY2;.. .s: .:::: . ss62 2:52S2;.ZY HPHNENNN5c6sEPEDNEDDD
::.:.;:::::;;sss;;;sss;c2ssscc2;; .:;ss. .;sSc.5NPPS26Ys P5NNNNNNNNNNNNNNS5Y65c :c s5SP2.;sc2;. ;:.:2s.:62 :::62HY sEPNNNHND.s 2:NE662sPYHED
:::;;s;;:;:;:::;;s;sssc;;sss;ss5Y22 . .:cS2s; ; s. . cs2222;s66sc cc ; HZNNNNNNNNNNSY ;2YPYY6S; ::ssccYHS;s:s2s;ss: . 6c;;;;Y5DZY65cDZ66HH2SZDNHNHNNZPHEHEEDD
.;;;:;:;:;;;;;;;;;;sscc;;ssssssssc6;;:. . s:::. :PDNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPDc2 . 5S: YY66s::.5Z6255SScs;;c2s;:: ::;:: 2s .2s2cSYDZEZZZ6SHNPDZYP5HPNHEEDDEEE
.:::::.;:ssssssssccsssssssssssssssc:: s62s;:: ;2scc;2YPNHNPs: 2cNENESYYZ6Ss2 : : S6 SD6S ;s55ZDZYYS5c55556YYZ62: ;;52c2;c65EP662ss.s. DYSSPEPEZYss5;HPDDDDDDDDD
:;;;;s;ssss;;s;ssssss;;sssssssscsssc6; .::;. : : ; c; : ZYEHPYc2ss2s2s2c25222css6YYY2: ... :.s: ccss2; NPEDZYDYHEPE :Y6PSDYHPEDDDDDDDD
.;;::;:s;s;;;sss;ssssccss;;sss;;;sc26 ;Sc. Z22sS6SYS6sc ;2 : Y2Y6 :.:;:s:55ZDYYs:c256; .;2YDNEPScs.;cc625256S5;. ..Y6NDHDDEHNNNNN.s .NNHPDPEDEEEEEEE
:::;:s;sssssscsssscssccccsss;s;scs;;s5Y62; :;s;s:. c;Z62s:sYYZDYZ5S . s.: :::;;;s;5566s.2SSYSY55SYYS52;: ss:::..;S6S6cs;sscDZNDYSEDNNSY2s22ZD5cs:HDHEDDEDDDDDD
;;;;:;:sss;;;sscccccsssscssssssscsss;scs:. s65656s s:622c2c;;:;s5 s . 6PZZ5ccs66666SSSDNZZ65csc25S2;262ss:cS2;2P6sc26YSZ6S2csccS6HP;522NHNNEHNDHDEEDDEDDDDDD
:;:;;s:cssssscsssssssssssssssssscssssssc226c.;c;:. :62 . . . c;::::cs:s.s . . ;:csZ6NNZY2s66DH2;22SZS5ZEYY52cs256ZY6652cs:s5; ;Y2:;6c .DSDP6SPS5c55s2 Y2ZYZYHDEEDDEEEDDDDDD
:;;;;;;s;sscs22cscccsssccccsssssccccccsssss :c2P5 s;cs..cc25ss : :: .: Y6NNEPNHP6DP2565DPEHZPNNEPZZYY2c6YYY5s;;;.:.:2; sSYEY:2ZYD5 DSPY;sS5ZYZZSDNNNEPYHDEDDDEEDDDDDDDDD
:;;;:;:;:ss;:::ssssss22csc2ccsss;sssscc222256; 2H6 2c2ss;::. s; ;:ZY22:;NDNH6YNDNH55: NNEEZSZZ5;HHPDZ6DDHNHN525SS6552555: :.: :2Z6;;ssY5;5YYS5.:PSs5YYNNNEHD66 55PZHEEEEEEDDDDDDDDDD
:;;ssss;;cssssssss;ccsssssssssssscccssssccccc566S: scc:.:c; . s;cs :.5c556Y NH ;s.P6NNNN6S ss:;Y2NNcscsYZ;: 6Ps ..:s5P :2ZNDS62SDc .s2S6Y66; cDYY2 : DZYPNNNNNNDPDDEDDDDDDDDDDDDDD
;;;s;::;:s;ss;;ssssccccssssssssccsssscscccsssssc5; 2YHPY6:: . cs5cS6PZS662NEHN;:YYcY P2522S ccHH2c YY56SY6SPEPZYZ5c66SZs; 2Sc; :c2S666S2 256S56Y5PYYYPZNENDPPNEEEDEEEEEEDDDDDDDDDDDDDD
:;;;;;:;:;;sssssssssssssscccsccccccsssccccccccssc265s. ;; :;:s: 5s5s::s;22YZcsEY:sPPPDcS. P665YY5666s;ZDS2PYDHPD2222s;.::.c5: .:..s2cc. ::;:.s5css2; PSSSNEEDEPPPHDEEEEEEEDDDDDDDDDDDDDDDD
;;;;;s;sss;s;;;;;ssssccc2cccccssscccccccccccccsccc2566c: ;;652c 2sss2scs.: 65552c:s ;2sc;. 2cDHssccs:6522scc2sc ;c;s:. . ... :2; .. .cc5265scs2YYNDDYDYSSZZDDEDEDDDDDDDDDDDDDDDDDDDDDD
;s;::;:;;sscss;ssccs;22sssscccc22csc2cccsc2cccsc2222c2SSSc s. ;ss22scs52s;ss .2s .::;22. :: :. .: . . .::cS6S666ZPEZ2cs2Zc ccNEDDDDPPPPEDDDDDDDDDDDDDDDDDDDDDD
.;:::s;ss::;:cccccccc22cccssssssssss;scssc2cccccccccss2256Y6 . 6522 .s:. sc25cccc55YY52SYSZ:c . .; :;:s :s . .;:;:. ;DDHDEENNNNNNNHHEEEHEEDDDDDDDDDDDEEEEDDEEEEE
:sss;s;cssss;sssssc;:ssccccccssccc2cc222cc22c22222cc2cssc2552: :;Y6;s .. :.s::; cc :..: :s :::; .s ;;;2YSS6S2. .sHZYYZ6 :PYEDDDDDEDDDDDDDDDDEDDDDEEDDDDD
:::::;:::;;ccssss22ccccccc222cscc22ccccc2c2ccccc2csssc222cc265s; ::c;:. . : . : ssc2;: :::..: :..: ::s : .:;s;ss;c2PY62:;cs6252sc:sDZHDDDDDEDDDDDDDDDDEDDDDEEDDDDD
:;:::;:;;s;sssssssssscscc22222c2222cccccc2222csc2222cc2ccccsss2c6c .;: :.:;ssss .sc :. c6s;:: :c5Pc :525cs;6SHEPDNHHEDHNNNEEEDDDDEDDDDDDDDDDEDDEEEEEEEEE
:;:;:s;cssssssssscsssccccccccc2ssssssccc2ccc2ccccc2222ccc; .:SSNN2c ::S6;; 2s:: ::s;sc 22;s cc. s2sc :;25: sc2655YN2 . 26NNNNZZPZHHHHEDEEDDEEEEDDEEDDDDDDDDEEDDDDDDDDD
:;;s:cscsccsssscccs22522c22cc22222222222cc22c2522222ss::.:c5PDNHNNNNPP :2ss::scsc . ;; :s 56c:2cc;PHZZ2 :6: c5SPS555s s;SNDSYPZNY;2ZPNEDDDDDDEDDDDDDEEEEEEEDDDDDDDDDDDDDDDDD
;s;s;cscs2ccccs22css;cccc55552222222c22222cc22c22ccs.:;;56HHNNHEDDENNNNH . S522. sc .:.. SYYPcs: SDPE5sc:cYs 2PDEHNNHHNDYZPPYZHEEEEEEEEDDDDDDEDDPPEDEDDDDDDDDDDDDDDDD
;;;s;css;csc2cscc22ss22ccc222ccc222cccc222c22css:: .scZPNNNHHEDDDDDDEHNN.2 . . . 6cc;cc:..::s22s:: s2: s:SZss ::c5sc. :522ZNZc2226s :HYs6EENHDDEDDDDDDDDDDDDEDDDDDDEDDDDDDDDDDDDDDDD
;;:;;sss;csc2ssccc2222c222c222222ccc22222cc;:. .:c6YHHNNNHEDDDDDEEEDEEHNNN;Y c5c2;:ZY:;. s::: s; 2225s2 : 256S5sZP22;;ss6SYZPEY2ZPY26Z5c56PNEPYc5PZPPPPHEEEDDDDDDDDDDDDDEEEEEEEDDDDDDDDDDDDDDDDD
;css;sscs2ccccc2ccccc2c2c252c22222225c;: :s5SDNNNNNHHEEDDDDDDDEEEEEEDEHNHN 2 ..2c : .:DDS6ZY . 2c 26 s;55PH6c5255 .:YHY25Scc2sPNP2YNPZDEZS66ZNNHHHHEEDDEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
;;:cscscscssscc22ccsscccc255555cc22s:: :s6DHNNNNNHHEDDEEEDDDDDDDEDDDEDDDDEHNNNcY:5;c 6sPP2S : scSSDYDPYY552sNNZZss SZSSNNNHPYs YN : 6NYc2c6ZPPDNEDDDDDDEEEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
;cs2ccsss2222sscc252ccc22cc22252ccsc;SZENNNNHEEDDDDDEEEDDEEEEEEDEDDDDEEEEEEEENNNNN 2 .EYPE DZ6Ss;6sYPDEDPDYNH6S25ZYDZZP56:; ::ssPNNNEZDEDHEEEDHNHHEEEEEEEEEEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
;cccscc222c2222222c555222255522s;s:66ENHNHEEDDEDDDEEDDDDDDDDDDDDEDDDDDDDDDDEDDDEHNHN:c sc PPDEYYc;PSZD SYs;Y5DDHNS2DEPDYZ552sYZPYHNDPZZENEDDDEHHDDDDEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
scccc2222222222225222555522222s2cYZHHHHEDDEEEDDDEEDDDDDDDDDEDDDDEDDDDDDDDDDEDDEEDENNNNZPNNHHHN PY2;PE55NNcc5;NEDDNNNHDEHNPPHHEDHNDPDHHHHEEEEEEEEEEEEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
;cscs2c2c225222222252222225555sZZHNHHEDDDEEDDEEEDDDDDDDDDDDDEEEEDDDDDDDDDDDDEEDDEEDEHNNNNHNNEN5ZDZS6PYEHDDZYDH6sHDEDEEDDEEEHHNHHHHHEEEEEEEEEEEEEEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEDD
22c2c22522c225622222c2266662s5;DHHHEDEEEEEEEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEDDEEDDDDEEENNNNNNNNNHHHHHHHNNNHEEEDDEEDDDEDDEEDDDDDDDEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEDDEEE
scc222ccs55222c552c55555522c:5sPEEEDDDEEDDDDEEEEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEDDEEEEEEEDDEEDDDDEDEEEDDEEEEEEEEEDEEEEEEEEEEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEDDENZ
scsss2c2222222222555522555565PPHHEDDEDDDDDEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEDDDDDDEDEDDDDDDDDDDDDEDDPZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEDDPN
*/
pragma solidity 0.8.20;
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
}
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);
}
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
return c;
}
}
contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor () {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(_owner == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
}
interface IUniswapV2Factory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IUniswapV2Router02 {
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
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);
}
contract KISHU is Context, IERC20, Ownable {
using SafeMath for uint256;
mapping (address => uint256) private _balances;
mapping (address => mapping (address => uint256)) private _allowances;
mapping (address => bool) private _isExcludedFromFee;
address payable private _taxWallet;
uint256 firstBlock;
uint256 private _initialBuyTax=35;
uint256 private _initialSellTax=35;
uint256 private _finalBuyTax=2;
uint256 private _finalSellTax=2;
uint256 private _reduceBuyTaxAt=37;
uint256 private _reduceSellTaxAt=37;
uint256 private _buyCount=0;
uint8 private constant _decimals = 9;
uint256 private constant _tTotal = 1000000 * 10**_decimals;
string private constant _name = unicode"HarryPotterArnoldSonic10Inu";
string private constant _symbol = unicode"KISHU";
uint256 public _maxTxAmount = 10000 * 10**_decimals;
uint256 public _maxWalletSize = 10000 * 10**_decimals;
uint256 public _taxSwapThreshold= 5000 * 10**_decimals;
uint256 public _maxTaxSwap= 5000 * 10**_decimals;
IUniswapV2Router02 private uniswapV2Router;
address private uniswapV2Pair;
bool private tradingOpen;
bool private inSwap = false;
bool private swapEnabled = false;
event MaxTxAmountUpdated(uint _maxTxAmount);
modifier lockTheSwap {
inSwap = true;
_;
inSwap = false;
}
constructor () {
_taxWallet = payable(_msgSender());
_balances[_msgSender()] = _tTotal;
_isExcludedFromFee[owner()] = true;
_isExcludedFromFee[address(this)] = true;
_isExcludedFromFee[_taxWallet] = true;
emit Transfer(address(0), _msgSender(), _tTotal);
}
function name() public pure returns (string memory) {
return _name;
}
function symbol() public pure returns (string memory) {
return _symbol;
}
function decimals() public pure returns (uint8) {
return _decimals;
}
function totalSupply() public pure override returns (uint256) {
return _tTotal;
}
function balanceOf(address account) public view override returns (uint256) {
return _balances[account];
}
function transfer(address recipient, uint256 amount) public override returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
function allowance(address owner, address spender) public view override returns (uint256) {
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount) public override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
_transfer(sender, recipient, amount);
_approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
return true;
}
function _approve(address owner, address spender, uint256 amount) private {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function _transfer(address from, address to, uint256 amount) private {
require(from != address(0), "ERC20: transfer from the zero address");
require(to != address(0), "ERC20: transfer to the zero address");
require(amount > 0, "Transfer amount must be greater than zero");
uint256 taxAmount=0;
if (from != owner() && to != owner()) {
taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
if (firstBlock + 3 > block.number) {
require(!isContract(to));
}
_buyCount++;
}
if (to != uniswapV2Pair && ! _isExcludedFromFee[to]) {
require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
}
if(to == uniswapV2Pair && from!= address(this) ){
taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
}
uint256 contractTokenBalance = balanceOf(address(this));
if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold) {
swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
uint256 contractETHBalance = address(this).balance;
if(contractETHBalance > 0) {
sendETHToFee(address(this).balance);
}
}
}
if(taxAmount>0){
_balances[address(this)]=_balances[address(this)].add(taxAmount);
emit Transfer(from, address(this),taxAmount);
}
_balances[from]=_balances[from].sub(amount);
_balances[to]=_balances[to].add(amount.sub(taxAmount));
emit Transfer(from, to, amount.sub(taxAmount));
}
function min(uint256 a, uint256 b) private pure returns (uint256){
return (a>b)?b:a;
}
function isContract(address account) private view returns (bool) {
uint256 size;
assembly {
size := extcodesize(account)
}
return size > 0;
}
function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = uniswapV2Router.WETH();
_approve(address(this), address(uniswapV2Router), tokenAmount);
uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0,
path,
address(this),
block.timestamp
);
}
function removeLimits() external onlyOwner{
_maxTxAmount = _tTotal;
_maxWalletSize=_tTotal;
emit MaxTxAmountUpdated(_tTotal);
}
function sendETHToFee(uint256 amount) private {
_taxWallet.transfer(amount);
}
function openTrading() external onlyOwner() {
require(!tradingOpen,"trading is already open");
uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
_approve(address(this), address(uniswapV2Router), _tTotal);
uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
swapEnabled = true;
tradingOpen = true;
firstBlock = block.number;
}
receive() external payable {}
}
{
"compilationTarget": {
"KISHU.sol": "KISHU"
},
"evmVersion": "shanghai",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
}
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]