package Ġcom . java de ob fusc ator . de ob fusc ator . transformers . advanced Ċ Ċ import Ġcom . java de ob fusc ator . de ob fusc ator . config . Transformer Config Ċ import Ġcom . java de ob fusc ator . de ob fusc ator . transformers . normal izer . Abstract Normalizer Ċ import Ġcom . java de ob fusc ator . de ob fusc ator . transformers . normal izer . Class Normalizer Ċ import Ġcom . java de ob fusc ator . de ob fusc ator . transformers . normal izer . Custom Rem apper Ċ Ċ @ Transformer Config . Config Options ( config Class Ġ= ĠPackage Normalizer . Config :: class ) Ċ class ĠPackage Normalizer Ġ: ĠAbstract Normalizer < Package Normalizer . Config >() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġremap ( re mapper : ĠCustom Rem apper ) Ġ{ ĊĠĠĠĠĠĠĠ Ġclass Nodes (). forEach Ġ{ Ġclass Node Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpackage Path Ġ= ĠArrayList ( class Node . name . split ("/ ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Path . remove ( package Path . last ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( package Path . isEmpty ()) Ġreturn ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġold PackageName Ġ= Ġpackage Path . join ToString ("/") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew PackageName Ġ= Ġpackage Path . join ToString ("/") Ġ{ Ġif Ġ( IL LEG AL _ JAVA _ NAMES . contains ( it ) Ġ|| ĠIL LEG AL _ WINDOWS _ CHAR ACT ERS . contains ( it )) Ġit Ġ+ ĠIL LEG AL _ PACKAGE _ SUFFIX Ġelse Ġit Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! old PackageName . equals ( new PackageName , Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( re mapper . map Package ( old PackageName , Ġnew PackageName )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info ("- Ġ- Ġ- Ġremap Ġpackage Ġ'$ old PackageName ' Ġ-> Ġ'$ new PackageName '") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠConfig Ġ: ĠAbstract Normalizer . Config ( Package Normalizer :: class . java ) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠIL LEG AL _ PACKAGE _ SUFFIX Ġ= Ġ"_ pkg " ĊĠĠĠĠĠĠĠ Ġval ĠIL LEG AL _ WINDOWS _ CHAR ACT ERS Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" aux ", Ġ" con ", Ġ" pr n ", Ġ" nul ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" com 0 ", Ġ" com 1 ", Ġ" com 2 ", Ġ" com 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" com 4 ", Ġ" com 5 ", Ġ" com 6 ", Ġ" com 7 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" com 8 ", Ġ" com 9 ", Ġ" l pt 0 ", Ġ" l pt 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" l pt 2 ", Ġ" l pt 3 ", Ġ" l pt 4 ", Ġ" l pt 5 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" l pt 6 ", Ġ" l pt 7 ", Ġ" l pt 8 ", Ġ" l pt 9 ") ĊĠĠĠĠĠĠĠ Ġval ĠIL LEG AL _ JAVA _ NAMES Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" abstract ", Ġ" assert ", Ġ" boolean ", Ġ" break ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" byte ", Ġ" case ", Ġ" catch ", Ġ" char ", Ġ" class ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" const ", Ġ" continue ", Ġ" default ", Ġ" do ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" double ", Ġ" else ", Ġ" enum ", Ġ" extends ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" false ", Ġ" final ", Ġ" finally ", Ġ" float ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" for ", Ġ" goto ", Ġ" if ", Ġ" implements ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" import ", Ġ" instance of ", Ġ" int ", Ġ" interface ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" long ", Ġ" native ", Ġ" new ", Ġ" null ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" package ", Ġ" private ", Ġ" protected ", Ġ" public ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" return ", Ġ" short ", Ġ" static ", Ġ" strict fp ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" super ", Ġ" switch ", Ġ" synchronized ", Ġ" this ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" throw ", Ġ" throws ", Ġ" transient ", Ġ" true ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" try ", Ġ" void ", Ġ" volatile ", Ġ" while ") ĊĊĠĠĠ Ġ} Ċ Ċ }