package Ġcom . any ascii . build Ċ Ċ import Ġcom . any ascii . build . gen . generate Ċ import Ġcom . ibm . icu . lang . U Character Ċ import Ġjava . nio . file . Path Ċ import Ġjava . time . Duration Ċ import Ġjava . time . Instant Ċ import Ġjava . util . Locale Ċ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġval Ġstart Ġ= ĠInstant . now () ĊĠĠĠ ĠLocale . setDefault ( Locale . ROOT ) ĊĊĠĠĠ Ġval Ġtable Ġ= ĠTable ( ASCII ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then ( decimal Digits ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then ( emo jis ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then ( custom ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. normalize ( N FK C ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. normalize ( N FK D ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then ( un ihan ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. normalize ( N FK C ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. case d ( code Points ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. trans l iterate () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. minus ( ASCII . keys ) ĊĊĠĠĠ Ġtable . write (" table . tsv ") ĊĊĠĠĠ Ġgenerate ( table ) ĊĊĠĠĠ Ġprintln ( Duration . between ( start , ĠInstant . now ())) Ċ } Ċ Ċ private Ġfun Ġdecimal Digits () Ġ= Ġcode Points (" Nd "). to Table Ġ{ Ġit . num Ġ} Ċ Ċ private Ġfun Ġcustom () Ġ= ĠTable () ĊĠĠĠĠĠĠĠ Ġ. then ( combin ing Di ac ritical Marks ()) ĊĠĠĠĠĠĠĠ Ġ. then ( variation Selectors ()) ĊĠĠĠĠĠĠĠ Ġ. then ( half width Full width ()) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" spacing - modifier - letters ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" currency - symbols ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" letter like - symbols ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" general - p unctuation ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" n ko ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" math - symbols ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" kan bun ")) ĊĠĠĠĠĠĠĠ Ġ. then ( tags ()) ĊĠĠĠĠĠĠĠ Ġ. then ( c jk Misc ()) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" k ang xi - rad ical s ")) ĊĠĠĠĠĠĠĠ Ġ. then (( 0 x 3 1 c 0 .. 0 x 3 1 e 3 ). to Table Ġ{ Ġit . name . substring After Last (' Ġ') Ġ}) Ġ// Ġc jk Ġst ro kes ĊĠĠĠĠĠĠĠ Ġ. then ( yi ()) ĊĠĠĠĠĠĠĠ Ġ. then ( v ai ()) ĊĠĠĠĠĠĠĠ Ġ. then ( eth iop ic ()) ĊĠĠĠĠĠĠĠ Ġ. then ( dom ino es ()) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" ocr ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" ol - ch iki ")) ĊĠĠĠĠĠĠĠ Ġ. then ( cy ril lic ()) ĊĠĠĠĠĠĠĠ Ġ. then (( 0 x 2 4 eb .. 0 x 2 4 ff ). to Table Ġ{ Ġit . num Ġ}) Ġ// Ġcirc led Ġnumbers ĊĠĠĠĠĠĠĠ Ġ. then ( co ptic ()) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" y ij ing - hex agrams ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" box - drawing ")) ĊĠĠĠĠĠĠĠ Ġ. then (( 0 x 2 5 8 0 .. 0 x 2 5 9 f ). to Table Ġ{ Ġ"#" Ġ}) Ġ// Ġblock Ġelements ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" control - pictures ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" b op omo fo ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" he brew ")) ĊĠĠĠĠĠĠĠ Ġ. then ( cy pri ot ()) ĊĠĠĠĠĠĠĠ Ġ. then ( br ail le ()) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" go th ic ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" ly dian ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" ly ci an ")) ĊĠĠĠĠĠĠĠ Ġ. then ( ge org ian ()) ĊĠĠĠĠĠĠĠ Ġ. then ( arm en ian ()) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" th ai ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" number - forms ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" latin - common ")) ĊĠĠĠĠĠĠĠ Ġ. then ( latin ()) ĊĠĠĠĠĠĠĠ Ġ. then ( gree k ()) ĊĠĠĠĠĠĠĠ Ġ. then ( k ata k ana ()) ĊĠĠĠĠĠĠĠ Ġ. then ( hir ag ana ()) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" la o ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" run ic ")) ĊĠĠĠĠĠĠĠ Ġ. then ( old Italic ()) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" os man ya ")) ĊĠĠĠĠĠĠĠ Ġ. then ( de ser et ()) ĊĠĠĠĠĠĠĠ Ġ. then ( arab ic ()) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" ori ya ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" b eng ali ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" dev an ag ari ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" g urm uk hi ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" gu jar ati ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" t amil ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" tel ugu ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" k ann ada ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" mal ay alam ")) ĊĠĠĠĠĠĠĠ Ġ. then ( sin hal a ()) ĊĠĠĠĠĠĠĠ Ġ. then ( hang ul ()) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" misc - symbols ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" arrows ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" misc - technical ")) ĊĠĠĠĠĠĠĠ Ġ. then ( ding b ats ()) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" tif in ag h ")) ĊĠĠĠĠĠĠĠ Ġ. then ( gl ag ol it ic ()) ĊĠĠĠĠĠĠĠ Ġ. then ( bay bay in ()) ĊĠĠĠĠĠĠĠ Ġ. then ( kh mer ()) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" og ham ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" tha ana ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" my an mar ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" ph ags - pa ")) ĊĠĠĠĠĠĠĠ Ġ. then ( ideo graphic Description ()) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" modifier - tone - letters ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" indic - number - forms ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" anc ient - symbols ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" car ian ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" ta i - x uan - j ing ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" misc - symbols - and - arrows ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" old - arab ian ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" supp lement al - p unctuation ")) ĊĠĠĠĠĠĠĠ Ġ. then ( t ib et an ()) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" ge ometric - shapes ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" math - operators ")) ĊĠĠĠĠĠĠĠ Ġ. then ( can ad ian Sy ll ab ics ()) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" me ete i - may ek ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" bug inese ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" al che mical ")) ĊĠĠĠĠĠĠĠ Ġ. then ( pho en ician ()) ĊĠĠĠĠĠĠĠ Ġ. then ( linear AB ()) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" chess - symbols ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" orn amental - ding b ats ")) ĊĠĠĠĠĠĠĠ Ġ. then ( count ing Rod Num er als ()) ĊĠĠĠĠĠĠĠ Ġ. then ( may an Num er als ()) ĊĠĠĠĠĠĠĠ Ġ. then ( sh orthand Format Controls ()) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" m iao ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" mak asar ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" p au - cin - h au ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" el bas an ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" ca uc as ian - al ban ian ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" ta i - le ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" mong ol ian ")) ĊĠĠĠĠĠĠĠ Ġ. then ( bam um ()) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" sy lot i - nag ri ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" k ay ah - li ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" re j ang ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" ch am ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" ta i - vi et ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" jav anese ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" b ata k ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" s und anese ")) ĊĠĠĠĠĠĠĠ Ġ. then ( ch ero ke e ()) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" new - ta i - l ue ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" sa ur ash tra ")) ĊĠĠĠĠĠĠĠ Ġ. then ( sy ri ac ()) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" lim bu ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" symbols - for - legacy - computing ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" mand aic ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" special s ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" lis u ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" ma hj ong - tiles ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" playing - cards ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" s amar itan ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" ta i - tham ")) ĊĠĠĠĠĠĠĠ Ġ. then ( n ush u ()) ĊĠĠĠĠĠĠĠ Ġ. then ( ad lam ()) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" sor a - s omp eng ")) ĊĠĠĠĠĠĠĠ Ġ. then ( os age ()) ĊĠĠĠĠĠĠĠ Ġ. then ( me def aid rin ()) ĊĠĠĠĠĠĠĠ Ġ. then ( eg y pt ian H ier og lyph s ()) ĊĠĠĠĠĠĠĠ Ġ. then ( m arch en ()) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" ugar it ic ")) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" sh av ian ")) ĊĠĠĠĠĠĠĠ Ġ. then ( war ang C iti ()) ĊĠĠĠĠĠĠĠ Ġ. then ( Table (" div es - ak uru ")) Ċ Ċ private Ġfun Ġcy ril lic () Ġ= ĠTable (" cy ril lic ") ĊĠĠĠĠĠĠĠ Ġ. case d ( code Points (" Cy rl ")) ĊĠĠĠĠĠĠĠ Ġ. alias ing (( 0 xa 6 7 4 .. 0 xa 6 7 b ) Ġ+ Ġ( 0 xa 6 9 e .. 0 xa 6 9 f ) Ġ+ Ġ( 0 x 2 de 0 .. 0 x 2 dff ) Ġ- Ġ 0 x 2 df 5 ) Ġ{ Ġit . replace (" COMB IN ING ĠCY R IL LIC ", Ġ" CY R IL LIC ĠSMALL ") Ġ} Ċ Ċ private Ġfun Ġco ptic () Ġ= ĠTable (" co ptic ") ĊĠĠĠĠĠĠĠ Ġ. case d ( code Points (" C opt ")) Ċ Ċ private Ġfun Ġy i () Ġ= ĠTable () ĊĠĠĠĠĠĠĠ Ġ. then ( 0 xa 0 1 5 , Ġ" w ") ĊĠĠĠĠĠĠĠ Ġ. then (( 0 xa 0 0 0 .. 0 xa 4 8 c ). to Table Ġ{ Ġit . name . substring After Last (' Ġ'). lower () Ġ}) Ġ// Ġsy ll ables ĊĠĠĠĠĠĠĠ Ġ. then (( 0 xa 4 9 0 .. 0 xa 4 c 6 ). to Table Ġ{ Ġit . name . substring After Last (' Ġ') Ġ}) Ġ// Ġrad ical s Ċ Ċ private Ġfun Ġv ai () Ġ= ĠTable (" v ai ") ĊĠĠĠĠĠĠĠ Ġ. then (( 0 xa 5 0 0 .. 0 xa 6 2 b ). to Table Ġ{ Ġit . name . substring After Last (' Ġ'). lower () Ġ}) Ċ Ċ private Ġfun Ġdom ino es () Ġ= Ġ( 0 x 1 f 0 3 0 .. 0 x 1 f 0 9 3 ). to Table Ġ{ ĊĠĠĠ Ġval Ġname Ġ= Ġit . name . remove Prefix (" DO MIN O ĠT ILE Ġ") ĊĠĠĠ Ġif Ġ(" BACK " Ġin Ġname ) Ġreturn @ to Table Ġ"-" ĊĠĠĠ Ġreturn @ to Table Ġname . split ('- '). let Ġ{ Ġit [ 1 ]. take Last ( 1 ) Ġ+ Ġit [ 2 ]. take Last ( 1 ) Ġ} Ċ } Ċ Ċ private Ġfun Ġcy pri ot () Ġ= Ġcode Points (" C prt "). to Table Ġ{ Ġit . name . substring After Last (' Ġ'). lower () Ġ} Ċ Ċ private Ġfun Ġbr ail le () Ġ= ĠTable (" br ail le ") ĊĠĠĠĠĠĠĠ Ġ. then ( code Points (" B ra i "). to Table Ġ{ Ġ"{ ${ it . name . substring After Last ('- ')}}" Ġ}) Ċ Ċ private Ġfun Ġge org ian () Ġ= ĠTable (" ge org ian ") ĊĠĠĠĠĠĠĠ Ġ. alias ing ( code Points (" Ge or "). filter Name Ġ{ Ġ" SMALL ĠLETTER " Ġin Ġit Ġ}) Ġ{ Ġit . replace (" SMALL Ġ", Ġ"") Ġ} ĊĠĠĠĠĠĠĠ Ġ. trans l iterate () ĊĠĠĠĠĠĠĠ Ġ. case d ( code Points (" Ge or ")) Ċ Ċ private Ġfun Ġar men ian () Ġ= ĠTable (" arm en ian ") ĊĠĠĠĠĠĠĠ Ġ. case d ( code Points (" Ar mn ")) Ċ Ċ private Ġfun Ġlatin () Ġ= ĠTable (" latin ") ĊĠĠĠĠĠĠĠ Ġ. case d ( code Points (" Lat n ")) Ċ Ċ private Ġfun Ġk ata k ana () Ġ= ĠTable (" k ata k ana ") ĊĠĠĠĠĠĠĠ Ġ. alias ing ( code Points (" K ana "). filter Name Ġ{ Ġit . startsWith (" K ATA KAN A ĠLETTER ĠSMALL ") Ġ}) Ġ{ Ġit . replace (" SMALL Ġ", Ġ"") Ġ} Ċ Ċ private Ġfun Ġh ir ag ana () Ġ= ĠTable (" hir ag ana ") ĊĠĠĠĠĠĠĠ Ġ. alias ing ( code Points (" H ira "). filter Name Ġ{ Ġit . startsWith (" HIR AG ANA ĠLETTER ĠSMALL ") Ġ}) Ġ{ Ġit . replace (" SMALL Ġ", Ġ"") Ġ} ĊĠĠĠĠĠĠĠ Ġ. then ( code Points (" H ira "). filter Name Ġ{ Ġit . startsWith (" H ENT A IG ANA ") Ġ}. to Table Ġ{ Ġit . name . substring After Last (' Ġ'). substring Before ('- '). lower () Ġ}) Ċ Ċ private Ġfun Ġdeser et () Ġ= ĠTable (" de ser et ") ĊĠĠĠĠĠĠĠ Ġ. case d ( code Points (" Ds rt ")) Ċ Ċ private Ġfun Ġold Italic () Ġ= ĠTable (" old - italic ") ĊĠĠĠĠĠĠĠ Ġ. then (( 0 x 1 0 3 2 0 .. 0 x 1 0 3 2 3 ). to Table Ġ{ ĠROM AN _ NUM ER ALS . getValue ( it . numeric Value ) Ġ}) Ċ Ċ private Ġfun Ġsin hal a () Ġ= ĠTable (" sin hal a ") ĊĠĠĠĠĠĠĠ Ġ. then (( 0 x 1 1 1 e 0 .. 0 x 1 1 1 ff ). filter Defined (). to Table Ġ{ Ġit . num Ġ}) Ċ Ċ private Ġfun Ġd ing b ats () Ġ= ĠTable (" ding b ats ") ĊĠĠĠĠĠĠĠ Ġ. then (( 0 x 2 7 7 6 .. 0 x 2 7 9 3 ). to Table Ġ{ Ġit . num Ġ}) Ċ Ċ private Ġfun Ġc jk Misc () Ġ= ĠTable (" c jk - misc ") ĊĠĠĠĠĠĠĠ Ġ. then (( 0 x 3 0 2 1 .. 0 x 3 0 2 9 ). to Table Ġ{ Ġ"${ ( it Ġ- Ġ 0 x 3 0 2 1 Ġ+ Ġ 1 )}" Ġ}) Ġ// Ġhang zh ou Ġnumer als ĊĠĠĠĠĠĠĠ Ġ. then (( 0 x 3 2 2 0 .. 0 x 3 2 2 9 ). to Table Ġ{ Ġ" (${ ( it Ġ- Ġ 0 x 3 2 2 0 Ġ+ Ġ 1 )}) " Ġ}) Ġ// Ġparent hesized Ġnumbers ĊĠĠĠĠĠĠĠ Ġ. then (( 0 x 3 2 4 8 .. 0 x 3 2 4 f ). to Table Ġ{ Ġit . num Ġ}) Ġ// Ġcirc led Ġnumber Ġon Ġblack Ġsquare ĊĠĠĠĠĠĠĠ Ġ. then (( 0 x 3 2 8 0 .. 0 x 3 2 8 9 ). to Table Ġ{ Ġ" (${ ( it Ġ- Ġ 0 x 3 2 8 0 Ġ+ Ġ 1 )}) " Ġ}) Ġ// Ġcirc led Ġnumbers ĊĠĠĠĠĠĠĠ Ġ. then (( 0 x 3 2 c 0 .. 0 x 3 2 cb ). to Table Ġ{ Ġ"${ ( it Ġ- Ġ 0 x 3 2 c 0 Ġ+ Ġ 1 )} M " Ġ}) Ġ// Ġtele graph Ġmonths ĊĠĠĠĠĠĠĠ Ġ. then (( 0 x 3 3 5 8 .. 0 x 3 3 7 0 ). to Table Ġ{ Ġ"${ ( it Ġ- Ġ 0 x 3 3 5 8 )} H " Ġ}) Ġ// Ġtele graph Ġhours ĊĠĠĠĠĠĠĠ Ġ. then (( 0 x 3 3 e 0 .. 0 x 3 3 fe ). to Table Ġ{ Ġ"${ ( it Ġ- Ġ 0 x 3 3 e 0 Ġ+ Ġ 1 )} D " Ġ}) Ġ// Ġtele graph Ġdays Ċ Ċ private Ġfun Ġgl ag ol it ic () Ġ= ĠTable (" gl ag ol it ic ") ĊĠĠĠĠĠĠĠ Ġ. case d ( code Points (" Gl ag ")) Ċ Ċ private Ġfun Ġb ay bay in () Ġ= Ġ( 0 x 1 7 0 0 .. 0 x 1 7 7 f ). filter Defined (). to Table Ġ{ Ġcp Ġ-> ĊĠĠĠ Ġ// Ġtag alog , Ġhan un oo , Ġbu hid , Ġtag ban wa ĊĠĠĠ Ġval Ġname Ġ= Ġcp . name . lower () ĊĠĠĠ Ġval Ġlast Ġ= Ġname . substring After Last (' Ġ') ĊĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġ" vir ama " Ġin Ġname Ġ|| Ġ" p am ud pod " Ġin Ġname Ġ-> Ġ"" ĊĠĠĠĠĠĠĠ Ġ" single Ġpunctuation " Ġin Ġname Ġ-> Ġ" |" ĊĠĠĠĠĠĠĠ Ġ" double Ġpunctuation " Ġin Ġname Ġ-> Ġ" || " ĊĠĠĠĠĠĠĠ Ġlast . length Ġ== Ġ 1 Ġ-> Ġlast ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġlast . drop Last ( 1 ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun Ġide o graphic Description () Ġ= Ġ( 0 x 2 ff 0 .. 0 x 2 fff ). filter Defined (). to Table Ġ{ Ġit . toString ( 1 6 ). take Last ( 1 ) Ġ} Ċ Ċ private Ġfun Ġtib et an () Ġ= ĠTable (" t ib et an ") ĊĠĠĠĠĠĠĠ Ġ. alias ing ( code Points (" T ibt "). filter Name Ġ{ Ġ" SUB JOIN ED ĠLETTER ĠFIX ED - FORM " Ġin Ġit Ġ}) Ġ{ Ġit . replace (" SUB JOIN ED ĠLETTER ĠFIX ED - FORM ", Ġ" LET TER ") Ġ} ĊĠĠĠĠĠĠĠ Ġ. alias ing ( code Points (" T ibt "). filter Name Ġ{ Ġ" SUB JOIN ED ĠLETTER " Ġin Ġit Ġ&& Ġ" FIXED - FORM " Ġ! in Ġit Ġ}) Ġ{ Ġit . replace (" SUB JOIN ED ĠLETTER ", Ġ" LET TER ") Ġ} Ċ Ċ private Ġfun Ġcan ad ian Sy ll ab ics () Ġ= ĠTable (" can ad ian - sy ll ab ics ") ĊĠĠĠĠĠĠĠ Ġ. then ( code Points (" C ans "). to Table Ġ{ Ġit . name . substring After Last (' Ġ'). lower () Ġ}) Ċ Ċ private Ġfun Ġhalf width Full width () Ġ= Ġ( 0 xff 0 0 .. 0 xff ef ). filter Defined (). to Table Ġ{ Ġcp Ġ-> ĊĠĠĠ Ġvar Ġname Ġ= Ġcp . name . substring After (' Ġ') ĊĠĠĠ Ġif Ġ(" VO IC ED ĠSO UND ĠMARK " Ġin Ġname ) Ġname Ġ= Ġname . replace (" K ATA KAN A ", Ġ" K ATA KAN A - HIR AG ANA ") ĊĠĠĠ Ġelse Ġif Ġ( name . startsWith (" FOR MS Ġ")) Ġname Ġ= Ġname . replace (" FOR MS ", Ġ" BOX ĠD RAW INGS ") ĊĠĠĠ ĠCode Point ( name ). asString () Ċ } Ċ Ċ private Ġfun Ġph o en ician () Ġ= ĠTable (" pho en ician ") ĊĠĠĠĠĠĠĠ Ġ. then (( 0 x 1 0 9 1 6 .. 0 x 1 0 9 1 b ). to Table Ġ{ Ġit . num Ġ}) ĊĠĠĠĠĠĠĠ Ġ. then (( 0 x 1 0 8 5 8 .. 0 x 1 0 8 5 f ). to Table Ġ{ Ġit . num Ġ}) ĊĠĠĠĠĠĠĠ Ġ. then (( 0 x 1 0 8 7 9 .. 0 x 1 0 8 7 f ). to Table Ġ{ Ġit . num Ġ}) ĊĠĠĠĠĠĠĠ Ġ. then (( 0 x 1 0 8 fb .. 0 x 1 0 8 ff ). to Table Ġ{ Ġit . num Ġ}) ĊĠĠĠĠĠĠĠ Ġ. then (( 0 x 1 0 8 a 7 .. 0 x 1 0 8 af ). to Table Ġ{ Ġit . num Ġ}) ĊĠĠĠĠĠĠĠ Ġ. then (( 0 x 1 0 b 5 8 .. 0 x 1 0 b 5 f ). to Table Ġ{ Ġit . num Ġ}) ĊĠĠĠĠĠĠĠ Ġ. then (( 0 x 1 0 b 7 8 .. 0 x 1 0 b 7 f ). to Table Ġ{ Ġit . num Ġ}) ĊĠĠĠĠĠĠĠ Ġ. then (( 0 x 1 0 ba 9 .. 0 x 1 0 baf ). to Table Ġ{ Ġit . num Ġ}) ĊĠĠĠĠĠĠĠ Ġ. then (( 0 x 1 0 f 1 d .. 0 x 1 0 f 2 5 ). to Table Ġ{ Ġit . num Ġ}) ĊĠĠĠĠĠĠĠ Ġ. then (( 0 x 1 0 fc 5 .. 0 x 1 0 fcb ). to Table Ġ{ Ġit . num Ġ}) ĊĠĠĠĠĠĠĠ Ġ. then (( 0 x 1 0 f 5 1 .. 0 x 1 0 f 5 4 ). to Table Ġ{ Ġit . num Ġ}) Ċ Ċ private Ġfun Ġcounting Rod Num er als () Ġ= Ġ( 0 x 1 d 3 6 0 .. 0 x 1 d 3 7 8 ). to Table Ġ{ ĠNUMBER _ SPE L LO UT . parse ( it . name . substring After Last (' Ġ'). lower ()). toString () Ġ} Ċ Ċ private Ġfun Ġmay an Num er als () Ġ= Ġ( 0 x 1 d 2 e 0 .. 0 x 1 d 2 f 3 ). to Table Ġ{ Ġit . num Ġ} Ċ Ċ private Ġfun Ġsh orthand Format Controls () Ġ= Ġ( 0 x 1 bca 0 .. 0 x 1 b caf ). filter Defined (). to Table Ġ{ Ġit . toString ( 1 6 ). take Last ( 1 ) Ġ} Ċ Ċ private Ġfun Ġb am um () Ġ= ĠTable (" bam um ") ĊĠĠĠĠĠĠĠ Ġ. then (( 0 xa 6 e 6 .. 0 xa 6 ef ). to Table Ġ{ Ġit . num Ġ}) ĊĠĠĠĠĠĠĠ Ġ. then (( 0 xa 6 a 0 .. 0 xa 6 e 5 ). to Table Ġ{ Ġit . name . substring After Last (' Ġ'). lower (). capitalize () Ġ}) Ċ Ċ private Ġfun Ġch ero ke e () Ġ= Ġcode Points (" Ch er "). filter Ġ{ ĠU Character . is UL ower case ( it ) Ġ}. to Table Ġ{ Ġit . name . substring After Last (' Ġ'). lower () Ġ} ĊĠĠĠĠĠĠĠ Ġ. case d ( code Points (" Ch er ")) Ċ Ċ private Ġfun Ġsy ri ac () Ġ= ĠTable (" sy ri ac ") ĊĠĠĠĠĠĠĠ Ġ. alias ing (( 0 x 0 8 6 0 .. 0 x 0 8 6 a )) Ġ{ Ġit . replace (" SY RI AC ĠLETTER ĠM AL AY AL AM ", Ġ" MAL AY AL AM ĠLETTER ") Ġ} Ċ Ċ private Ġfun Ġn ush u () Ġ= ĠTable (). apply Ġ{ ĊĠĠĠ ĠforEach Line ( Path . of (" input / N ush u Sources . txt ")) Ġ{ Ġline Ġ-> ĊĠĠĠĠĠĠĠ Ġif Ġ( line . isEmpty () Ġ|| Ġline . startsWith ('# ')) Ġreturn @ forEach Line ĊĠĠĠĠĠĠĠ Ġval Ġsplit Ġ= Ġline . split ('\ t ', Ġlimit Ġ= Ġ 3 ) ĊĠĠĠĠĠĠĠ Ġif Ġ( split [ 1 ] Ġ!= Ġ" k Reading ") Ġreturn @ forEach Line ĊĠĠĠĠĠĠĠ Ġval Ġcp Ġ= Ġsplit [ 0 ]. drop ( 2 ). toInt ( 1 6 ) ĊĠĠĠĠĠĠĠ Ġthis [ cp ] Ġ= Ġsplit [ 2 ] ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun Ġad lam () Ġ= ĠTable (" ad lam ") ĊĠĠĠĠĠĠĠ Ġ. case d ( code Points (" Ad lm ")) Ċ Ċ private Ġfun Ġcombining Di ac ritical Marks () Ġ= ĠTable () ĊĠĠĠĠĠĠĠ Ġ. then (( 0 x 3 0 0 .. 0 x 3 6 2 ). to Table Ġ{ Ġ"" Ġ}) Ġ// ĠCombin ing ĠDi ac ritical ĠMark s ĊĠĠĠĠĠĠĠ Ġ. then (( 0 x 3 6 3 .. 0 x 3 6 f ). to Table Ġ{ Ġit . name . substring After Last (' Ġ'). lower () Ġ}) ĊĠĠĠĠĠĠĠ Ġ. then (( 0 x 1 ab 0 .. 0 x 1 aff ). filter Defined (). to Table Ġ{ Ġ"" Ġ}) Ġ// ĠCombin ing ĠDi ac ritical ĠMark s ĠExtended ĊĠĠĠĠĠĠĠ Ġ. then (( 0 x 1 dc 0 .. 0 x 1 dff ). filter Defined (). to Table Ġ{ Ġ"" Ġ}) Ġ// ĠCombin ing ĠDi ac ritical ĠMark s ĠSup p lement ĊĠĠĠĠĠĠĠ Ġ. then (( 0 x 2 0 d 0 .. 0 x 2 0 ff ). filter Defined (). to Table Ġ{ Ġ"" Ġ}) Ġ// ĠCombin ing ĠDi ac ritical ĠMark s Ġfor ĠS ymbols ĊĠĠĠĠĠĠĠ Ġ. then (( 0 xfe 2 0 .. 0 xfe 2 f ). to Table Ġ{ Ġ"" Ġ}) Ġ// ĠCombin ing ĠHalf ĠMark s Ċ Ċ private Ġfun Ġvariation Selectors () Ġ= ĠTable () ĊĠĠĠĠĠĠĠ Ġ. then (( 0 xfe 0 0 .. 0 xfe 0 f ). to Table Ġ{ Ġ"" Ġ}) Ġ// ĠVari ation ĠSelect ors ĊĠĠĠĠĠĠĠ Ġ. then (( 0 xe 0 1 0 0 .. 0 xe 0 1 ef ). to Table Ġ{ Ġ"" Ġ}) Ġ// ĠVari ation ĠSelect ors ĠSup p lement Ċ Ċ private Ġfun Ġtags () Ġ= ĠTable () ĊĠĠĠĠĠĠĠ Ġ. then (( 0 xe 0 0 2 0 .. 0 xe 0 0 7 e ). to Table Ġ{ Ġ( it Ġ- Ġ 0 xe 0 0 0 0 ). asString () Ġ}) ĊĠĠĠĠĠĠĠ Ġ. then (( 0 xe 0 0 0 0 .. 0 xe 0 0 7 f ). filter Defined (). to Table Ġ{ Ġ"" Ġ}) Ċ Ċ private Ġfun Ġos age () Ġ= ĠTable (" os age ") ĊĠĠĠĠĠĠĠ Ġ. case d ( code Points (" Os ge ")) Ċ Ċ private Ġfun Ġme def aid rin () Ġ= ĠTable (" me def aid rin ") ĊĠĠĠĠĠĠĠ Ġ. case d ( code Points (" Med f ")) ĊĠĠĠĠĠĠĠ Ġ. then (( 0 x 1 6 e 8 0 .. 0 x 1 6 e 9 6 ). to Table Ġ{ Ġit . num Ġ}) Ċ Ċ private Ġfun Ġkh mer () Ġ= ĠTable (" kh mer ") ĊĠĠĠĠĠĠĠ Ġ. then (( 0 x 1 7 f 0 .. 0 x 1 7 f 9 ). to Table Ġ{ Ġit . num Ġ}) Ċ Ċ private Ġfun Ġm arch en () Ġ= ĠTable (" m arch en ") ĊĠĠĠĠĠĠĠ Ġ. then ( code Points (" Mar c "). to Table Ġ{ ĠCode Point ( it . name . replace (" M ARCH EN ", Ġ" TI B ET AN ")). let Ġ{ Ġif Ġ( it Ġ== Ġ- 1 ) Ġ"" Ġelse Ġit . asString () Ġ} Ġ}) Ċ Ċ private Ġfun Ġwar ang C iti () Ġ= ĠTable (" war ang - c iti ") ĊĠĠĠĠĠĠĠ Ġ. case d ( code Points (" W ara ")) ĊĠĠĠĠĠĠĠ Ġ. then (( 0 x 1 1 8 ea .. 0 x 1 1 8 f 2 ). to Table Ġ{ Ġit . num Ġ})