Merge branch 'master' of https://github.com/apache/incubator-nlpcraft
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ansi/NCAnsi.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ansi/NCAnsi.scala
index fceb73b..26c184a 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ansi/NCAnsi.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ansi/NCAnsi.scala
@@ -31,8 +31,8 @@
         ------------------------------------------
         for i in {1..255}
         do
-            echo "private final val FG_$i = \"\u001b[38;5;${i}m\""
-            echo "private final val BG_$i = \"\u001b[48;5;${i}m\""
+            echo "private final val FG_$i = \s"${CSI}38;5;${i}m\""
+            echo "private final val BG_$i = \s"${CSI}48;5;${i}m\""
         done
 
         echo
@@ -53,537 +53,542 @@
         done
      */
 
-    private final val RESET = "\u001b[0m"
+    private final val ESC = "\u001b"
+    private final val BELL = "\u0007"
+    private final val CSI = s"$ESC["
+    private final val OSC = s"$ESC]"
+
+    private final val RESET = s"${CSI}0m"
 
     // 4-bit colors.
-    private final val BLACK = "\u001b[30m"
-    private final val RED = "\u001b[31m"
-    private final val GREEN = "\u001b[32m"
-    private final val YELLOW = "\u001b[33m"
-    private final val BLUE = "\u001b[34m"
-    private final val MAGENTA = "\u001b[35m"
-    private final val CYAN = "\u001b[36m"
-    private final val WHITE = "\u001b[37m"
-    private final val BLACK_B = "\u001b[40m"
-    private final val RED_B = "\u001b[41m"
-    private final val GREEN_B = "\u001b[42m"
-    private final val YELLOW_B = "\u001b[43m"
-    private final val BLUE_B = "\u001b[44m"
-    private final val MAGENTA_B = "\u001b[45m"
-    private final val CYAN_B = "\u001b[46m"
-    private final val WHITE_B = "\u001b[47m"
+    private final val BLACK = s"${CSI}30m"
+    private final val RED = s"${CSI}31m"
+    private final val GREEN = s"${CSI}32m"
+    private final val YELLOW = s"${CSI}33m"
+    private final val BLUE = s"${CSI}34m"
+    private final val MAGENTA = s"${CSI}35m"
+    private final val CYAN = s"${CSI}36m"
+    private final val WHITE = s"${CSI}37m"
+    private final val BLACK_B = s"${CSI}40m"
+    private final val RED_B = s"${CSI}41m"
+    private final val GREEN_B = s"${CSI}42m"
+    private final val YELLOW_B = s"${CSI}43m"
+    private final val BLUE_B = s"${CSI}44m"
+    private final val MAGENTA_B = s"${CSI}45m"
+    private final val CYAN_B = s"${CSI}46m"
+    private final val WHITE_B = s"${CSI}47m"
 
     // 8-bit colors.
-    private final val FG_1 = "\u001b[38;5;1m"
-    private final val BG_1 = "\u001b[48;5;1m"
-    private final val FG_2 = "\u001b[38;5;2m"
-    private final val BG_2 = "\u001b[48;5;2m"
-    private final val FG_3 = "\u001b[38;5;3m"
-    private final val BG_3 = "\u001b[48;5;3m"
-    private final val FG_4 = "\u001b[38;5;4m"
-    private final val BG_4 = "\u001b[48;5;4m"
-    private final val FG_5 = "\u001b[38;5;5m"
-    private final val BG_5 = "\u001b[48;5;5m"
-    private final val FG_6 = "\u001b[38;5;6m"
-    private final val BG_6 = "\u001b[48;5;6m"
-    private final val FG_7 = "\u001b[38;5;7m"
-    private final val BG_7 = "\u001b[48;5;7m"
-    private final val FG_8 = "\u001b[38;5;8m"
-    private final val BG_8 = "\u001b[48;5;8m"
-    private final val FG_9 = "\u001b[38;5;9m"
-    private final val BG_9 = "\u001b[48;5;9m"
-    private final val FG_10 = "\u001b[38;5;10m"
-    private final val BG_10 = "\u001b[48;5;10m"
-    private final val FG_11 = "\u001b[38;5;11m"
-    private final val BG_11 = "\u001b[48;5;11m"
-    private final val FG_12 = "\u001b[38;5;12m"
-    private final val BG_12 = "\u001b[48;5;12m"
-    private final val FG_13 = "\u001b[38;5;13m"
-    private final val BG_13 = "\u001b[48;5;13m"
-    private final val FG_14 = "\u001b[38;5;14m"
-    private final val BG_14 = "\u001b[48;5;14m"
-    private final val FG_15 = "\u001b[38;5;15m"
-    private final val BG_15 = "\u001b[48;5;15m"
-    private final val FG_16 = "\u001b[38;5;16m"
-    private final val BG_16 = "\u001b[48;5;16m"
-    private final val FG_17 = "\u001b[38;5;17m"
-    private final val BG_17 = "\u001b[48;5;17m"
-    private final val FG_18 = "\u001b[38;5;18m"
-    private final val BG_18 = "\u001b[48;5;18m"
-    private final val FG_19 = "\u001b[38;5;19m"
-    private final val BG_19 = "\u001b[48;5;19m"
-    private final val FG_20 = "\u001b[38;5;20m"
-    private final val BG_20 = "\u001b[48;5;20m"
-    private final val FG_21 = "\u001b[38;5;21m"
-    private final val BG_21 = "\u001b[48;5;21m"
-    private final val FG_22 = "\u001b[38;5;22m"
-    private final val BG_22 = "\u001b[48;5;22m"
-    private final val FG_23 = "\u001b[38;5;23m"
-    private final val BG_23 = "\u001b[48;5;23m"
-    private final val FG_24 = "\u001b[38;5;24m"
-    private final val BG_24 = "\u001b[48;5;24m"
-    private final val FG_25 = "\u001b[38;5;25m"
-    private final val BG_25 = "\u001b[48;5;25m"
-    private final val FG_26 = "\u001b[38;5;26m"
-    private final val BG_26 = "\u001b[48;5;26m"
-    private final val FG_27 = "\u001b[38;5;27m"
-    private final val BG_27 = "\u001b[48;5;27m"
-    private final val FG_28 = "\u001b[38;5;28m"
-    private final val BG_28 = "\u001b[48;5;28m"
-    private final val FG_29 = "\u001b[38;5;29m"
-    private final val BG_29 = "\u001b[48;5;29m"
-    private final val FG_30 = "\u001b[38;5;30m"
-    private final val BG_30 = "\u001b[48;5;30m"
-    private final val FG_31 = "\u001b[38;5;31m"
-    private final val BG_31 = "\u001b[48;5;31m"
-    private final val FG_32 = "\u001b[38;5;32m"
-    private final val BG_32 = "\u001b[48;5;32m"
-    private final val FG_33 = "\u001b[38;5;33m"
-    private final val BG_33 = "\u001b[48;5;33m"
-    private final val FG_34 = "\u001b[38;5;34m"
-    private final val BG_34 = "\u001b[48;5;34m"
-    private final val FG_35 = "\u001b[38;5;35m"
-    private final val BG_35 = "\u001b[48;5;35m"
-    private final val FG_36 = "\u001b[38;5;36m"
-    private final val BG_36 = "\u001b[48;5;36m"
-    private final val FG_37 = "\u001b[38;5;37m"
-    private final val BG_37 = "\u001b[48;5;37m"
-    private final val FG_38 = "\u001b[38;5;38m"
-    private final val BG_38 = "\u001b[48;5;38m"
-    private final val FG_39 = "\u001b[38;5;39m"
-    private final val BG_39 = "\u001b[48;5;39m"
-    private final val FG_40 = "\u001b[38;5;40m"
-    private final val BG_40 = "\u001b[48;5;40m"
-    private final val FG_41 = "\u001b[38;5;41m"
-    private final val BG_41 = "\u001b[48;5;41m"
-    private final val FG_42 = "\u001b[38;5;42m"
-    private final val BG_42 = "\u001b[48;5;42m"
-    private final val FG_43 = "\u001b[38;5;43m"
-    private final val BG_43 = "\u001b[48;5;43m"
-    private final val FG_44 = "\u001b[38;5;44m"
-    private final val BG_44 = "\u001b[48;5;44m"
-    private final val FG_45 = "\u001b[38;5;45m"
-    private final val BG_45 = "\u001b[48;5;45m"
-    private final val FG_46 = "\u001b[38;5;46m"
-    private final val BG_46 = "\u001b[48;5;46m"
-    private final val FG_47 = "\u001b[38;5;47m"
-    private final val BG_47 = "\u001b[48;5;47m"
-    private final val FG_48 = "\u001b[38;5;48m"
-    private final val BG_48 = "\u001b[48;5;48m"
-    private final val FG_49 = "\u001b[38;5;49m"
-    private final val BG_49 = "\u001b[48;5;49m"
-    private final val FG_50 = "\u001b[38;5;50m"
-    private final val BG_50 = "\u001b[48;5;50m"
-    private final val FG_51 = "\u001b[38;5;51m"
-    private final val BG_51 = "\u001b[48;5;51m"
-    private final val FG_52 = "\u001b[38;5;52m"
-    private final val BG_52 = "\u001b[48;5;52m"
-    private final val FG_53 = "\u001b[38;5;53m"
-    private final val BG_53 = "\u001b[48;5;53m"
-    private final val FG_54 = "\u001b[38;5;54m"
-    private final val BG_54 = "\u001b[48;5;54m"
-    private final val FG_55 = "\u001b[38;5;55m"
-    private final val BG_55 = "\u001b[48;5;55m"
-    private final val FG_56 = "\u001b[38;5;56m"
-    private final val BG_56 = "\u001b[48;5;56m"
-    private final val FG_57 = "\u001b[38;5;57m"
-    private final val BG_57 = "\u001b[48;5;57m"
-    private final val FG_58 = "\u001b[38;5;58m"
-    private final val BG_58 = "\u001b[48;5;58m"
-    private final val FG_59 = "\u001b[38;5;59m"
-    private final val BG_59 = "\u001b[48;5;59m"
-    private final val FG_60 = "\u001b[38;5;60m"
-    private final val BG_60 = "\u001b[48;5;60m"
-    private final val FG_61 = "\u001b[38;5;61m"
-    private final val BG_61 = "\u001b[48;5;61m"
-    private final val FG_62 = "\u001b[38;5;62m"
-    private final val BG_62 = "\u001b[48;5;62m"
-    private final val FG_63 = "\u001b[38;5;63m"
-    private final val BG_63 = "\u001b[48;5;63m"
-    private final val FG_64 = "\u001b[38;5;64m"
-    private final val BG_64 = "\u001b[48;5;64m"
-    private final val FG_65 = "\u001b[38;5;65m"
-    private final val BG_65 = "\u001b[48;5;65m"
-    private final val FG_66 = "\u001b[38;5;66m"
-    private final val BG_66 = "\u001b[48;5;66m"
-    private final val FG_67 = "\u001b[38;5;67m"
-    private final val BG_67 = "\u001b[48;5;67m"
-    private final val FG_68 = "\u001b[38;5;68m"
-    private final val BG_68 = "\u001b[48;5;68m"
-    private final val FG_69 = "\u001b[38;5;69m"
-    private final val BG_69 = "\u001b[48;5;69m"
-    private final val FG_70 = "\u001b[38;5;70m"
-    private final val BG_70 = "\u001b[48;5;70m"
-    private final val FG_71 = "\u001b[38;5;71m"
-    private final val BG_71 = "\u001b[48;5;71m"
-    private final val FG_72 = "\u001b[38;5;72m"
-    private final val BG_72 = "\u001b[48;5;72m"
-    private final val FG_73 = "\u001b[38;5;73m"
-    private final val BG_73 = "\u001b[48;5;73m"
-    private final val FG_74 = "\u001b[38;5;74m"
-    private final val BG_74 = "\u001b[48;5;74m"
-    private final val FG_75 = "\u001b[38;5;75m"
-    private final val BG_75 = "\u001b[48;5;75m"
-    private final val FG_76 = "\u001b[38;5;76m"
-    private final val BG_76 = "\u001b[48;5;76m"
-    private final val FG_77 = "\u001b[38;5;77m"
-    private final val BG_77 = "\u001b[48;5;77m"
-    private final val FG_78 = "\u001b[38;5;78m"
-    private final val BG_78 = "\u001b[48;5;78m"
-    private final val FG_79 = "\u001b[38;5;79m"
-    private final val BG_79 = "\u001b[48;5;79m"
-    private final val FG_80 = "\u001b[38;5;80m"
-    private final val BG_80 = "\u001b[48;5;80m"
-    private final val FG_81 = "\u001b[38;5;81m"
-    private final val BG_81 = "\u001b[48;5;81m"
-    private final val FG_82 = "\u001b[38;5;82m"
-    private final val BG_82 = "\u001b[48;5;82m"
-    private final val FG_83 = "\u001b[38;5;83m"
-    private final val BG_83 = "\u001b[48;5;83m"
-    private final val FG_84 = "\u001b[38;5;84m"
-    private final val BG_84 = "\u001b[48;5;84m"
-    private final val FG_85 = "\u001b[38;5;85m"
-    private final val BG_85 = "\u001b[48;5;85m"
-    private final val FG_86 = "\u001b[38;5;86m"
-    private final val BG_86 = "\u001b[48;5;86m"
-    private final val FG_87 = "\u001b[38;5;87m"
-    private final val BG_87 = "\u001b[48;5;87m"
-    private final val FG_88 = "\u001b[38;5;88m"
-    private final val BG_88 = "\u001b[48;5;88m"
-    private final val FG_89 = "\u001b[38;5;89m"
-    private final val BG_89 = "\u001b[48;5;89m"
-    private final val FG_90 = "\u001b[38;5;90m"
-    private final val BG_90 = "\u001b[48;5;90m"
-    private final val FG_91 = "\u001b[38;5;91m"
-    private final val BG_91 = "\u001b[48;5;91m"
-    private final val FG_92 = "\u001b[38;5;92m"
-    private final val BG_92 = "\u001b[48;5;92m"
-    private final val FG_93 = "\u001b[38;5;93m"
-    private final val BG_93 = "\u001b[48;5;93m"
-    private final val FG_94 = "\u001b[38;5;94m"
-    private final val BG_94 = "\u001b[48;5;94m"
-    private final val FG_95 = "\u001b[38;5;95m"
-    private final val BG_95 = "\u001b[48;5;95m"
-    private final val FG_96 = "\u001b[38;5;96m"
-    private final val BG_96 = "\u001b[48;5;96m"
-    private final val FG_97 = "\u001b[38;5;97m"
-    private final val BG_97 = "\u001b[48;5;97m"
-    private final val FG_98 = "\u001b[38;5;98m"
-    private final val BG_98 = "\u001b[48;5;98m"
-    private final val FG_99 = "\u001b[38;5;99m"
-    private final val BG_99 = "\u001b[48;5;99m"
-    private final val FG_100 = "\u001b[38;5;100m"
-    private final val BG_100 = "\u001b[48;5;100m"
-    private final val FG_101 = "\u001b[38;5;101m"
-    private final val BG_101 = "\u001b[48;5;101m"
-    private final val FG_102 = "\u001b[38;5;102m"
-    private final val BG_102 = "\u001b[48;5;102m"
-    private final val FG_103 = "\u001b[38;5;103m"
-    private final val BG_103 = "\u001b[48;5;103m"
-    private final val FG_104 = "\u001b[38;5;104m"
-    private final val BG_104 = "\u001b[48;5;104m"
-    private final val FG_105 = "\u001b[38;5;105m"
-    private final val BG_105 = "\u001b[48;5;105m"
-    private final val FG_106 = "\u001b[38;5;106m"
-    private final val BG_106 = "\u001b[48;5;106m"
-    private final val FG_107 = "\u001b[38;5;107m"
-    private final val BG_107 = "\u001b[48;5;107m"
-    private final val FG_108 = "\u001b[38;5;108m"
-    private final val BG_108 = "\u001b[48;5;108m"
-    private final val FG_109 = "\u001b[38;5;109m"
-    private final val BG_109 = "\u001b[48;5;109m"
-    private final val FG_110 = "\u001b[38;5;110m"
-    private final val BG_110 = "\u001b[48;5;110m"
-    private final val FG_111 = "\u001b[38;5;111m"
-    private final val BG_111 = "\u001b[48;5;111m"
-    private final val FG_112 = "\u001b[38;5;112m"
-    private final val BG_112 = "\u001b[48;5;112m"
-    private final val FG_113 = "\u001b[38;5;113m"
-    private final val BG_113 = "\u001b[48;5;113m"
-    private final val FG_114 = "\u001b[38;5;114m"
-    private final val BG_114 = "\u001b[48;5;114m"
-    private final val FG_115 = "\u001b[38;5;115m"
-    private final val BG_115 = "\u001b[48;5;115m"
-    private final val FG_116 = "\u001b[38;5;116m"
-    private final val BG_116 = "\u001b[48;5;116m"
-    private final val FG_117 = "\u001b[38;5;117m"
-    private final val BG_117 = "\u001b[48;5;117m"
-    private final val FG_118 = "\u001b[38;5;118m"
-    private final val BG_118 = "\u001b[48;5;118m"
-    private final val FG_119 = "\u001b[38;5;119m"
-    private final val BG_119 = "\u001b[48;5;119m"
-    private final val FG_120 = "\u001b[38;5;120m"
-    private final val BG_120 = "\u001b[48;5;120m"
-    private final val FG_121 = "\u001b[38;5;121m"
-    private final val BG_121 = "\u001b[48;5;121m"
-    private final val FG_122 = "\u001b[38;5;122m"
-    private final val BG_122 = "\u001b[48;5;122m"
-    private final val FG_123 = "\u001b[38;5;123m"
-    private final val BG_123 = "\u001b[48;5;123m"
-    private final val FG_124 = "\u001b[38;5;124m"
-    private final val BG_124 = "\u001b[48;5;124m"
-    private final val FG_125 = "\u001b[38;5;125m"
-    private final val BG_125 = "\u001b[48;5;125m"
-    private final val FG_126 = "\u001b[38;5;126m"
-    private final val BG_126 = "\u001b[48;5;126m"
-    private final val FG_127 = "\u001b[38;5;127m"
-    private final val BG_127 = "\u001b[48;5;127m"
-    private final val FG_128 = "\u001b[38;5;128m"
-    private final val BG_128 = "\u001b[48;5;128m"
-    private final val FG_129 = "\u001b[38;5;129m"
-    private final val BG_129 = "\u001b[48;5;129m"
-    private final val FG_130 = "\u001b[38;5;130m"
-    private final val BG_130 = "\u001b[48;5;130m"
-    private final val FG_131 = "\u001b[38;5;131m"
-    private final val BG_131 = "\u001b[48;5;131m"
-    private final val FG_132 = "\u001b[38;5;132m"
-    private final val BG_132 = "\u001b[48;5;132m"
-    private final val FG_133 = "\u001b[38;5;133m"
-    private final val BG_133 = "\u001b[48;5;133m"
-    private final val FG_134 = "\u001b[38;5;134m"
-    private final val BG_134 = "\u001b[48;5;134m"
-    private final val FG_135 = "\u001b[38;5;135m"
-    private final val BG_135 = "\u001b[48;5;135m"
-    private final val FG_136 = "\u001b[38;5;136m"
-    private final val BG_136 = "\u001b[48;5;136m"
-    private final val FG_137 = "\u001b[38;5;137m"
-    private final val BG_137 = "\u001b[48;5;137m"
-    private final val FG_138 = "\u001b[38;5;138m"
-    private final val BG_138 = "\u001b[48;5;138m"
-    private final val FG_139 = "\u001b[38;5;139m"
-    private final val BG_139 = "\u001b[48;5;139m"
-    private final val FG_140 = "\u001b[38;5;140m"
-    private final val BG_140 = "\u001b[48;5;140m"
-    private final val FG_141 = "\u001b[38;5;141m"
-    private final val BG_141 = "\u001b[48;5;141m"
-    private final val FG_142 = "\u001b[38;5;142m"
-    private final val BG_142 = "\u001b[48;5;142m"
-    private final val FG_143 = "\u001b[38;5;143m"
-    private final val BG_143 = "\u001b[48;5;143m"
-    private final val FG_144 = "\u001b[38;5;144m"
-    private final val BG_144 = "\u001b[48;5;144m"
-    private final val FG_145 = "\u001b[38;5;145m"
-    private final val BG_145 = "\u001b[48;5;145m"
-    private final val FG_146 = "\u001b[38;5;146m"
-    private final val BG_146 = "\u001b[48;5;146m"
-    private final val FG_147 = "\u001b[38;5;147m"
-    private final val BG_147 = "\u001b[48;5;147m"
-    private final val FG_148 = "\u001b[38;5;148m"
-    private final val BG_148 = "\u001b[48;5;148m"
-    private final val FG_149 = "\u001b[38;5;149m"
-    private final val BG_149 = "\u001b[48;5;149m"
-    private final val FG_150 = "\u001b[38;5;150m"
-    private final val BG_150 = "\u001b[48;5;150m"
-    private final val FG_151 = "\u001b[38;5;151m"
-    private final val BG_151 = "\u001b[48;5;151m"
-    private final val FG_152 = "\u001b[38;5;152m"
-    private final val BG_152 = "\u001b[48;5;152m"
-    private final val FG_153 = "\u001b[38;5;153m"
-    private final val BG_153 = "\u001b[48;5;153m"
-    private final val FG_154 = "\u001b[38;5;154m"
-    private final val BG_154 = "\u001b[48;5;154m"
-    private final val FG_155 = "\u001b[38;5;155m"
-    private final val BG_155 = "\u001b[48;5;155m"
-    private final val FG_156 = "\u001b[38;5;156m"
-    private final val BG_156 = "\u001b[48;5;156m"
-    private final val FG_157 = "\u001b[38;5;157m"
-    private final val BG_157 = "\u001b[48;5;157m"
-    private final val FG_158 = "\u001b[38;5;158m"
-    private final val BG_158 = "\u001b[48;5;158m"
-    private final val FG_159 = "\u001b[38;5;159m"
-    private final val BG_159 = "\u001b[48;5;159m"
-    private final val FG_160 = "\u001b[38;5;160m"
-    private final val BG_160 = "\u001b[48;5;160m"
-    private final val FG_161 = "\u001b[38;5;161m"
-    private final val BG_161 = "\u001b[48;5;161m"
-    private final val FG_162 = "\u001b[38;5;162m"
-    private final val BG_162 = "\u001b[48;5;162m"
-    private final val FG_163 = "\u001b[38;5;163m"
-    private final val BG_163 = "\u001b[48;5;163m"
-    private final val FG_164 = "\u001b[38;5;164m"
-    private final val BG_164 = "\u001b[48;5;164m"
-    private final val FG_165 = "\u001b[38;5;165m"
-    private final val BG_165 = "\u001b[48;5;165m"
-    private final val FG_166 = "\u001b[38;5;166m"
-    private final val BG_166 = "\u001b[48;5;166m"
-    private final val FG_167 = "\u001b[38;5;167m"
-    private final val BG_167 = "\u001b[48;5;167m"
-    private final val FG_168 = "\u001b[38;5;168m"
-    private final val BG_168 = "\u001b[48;5;168m"
-    private final val FG_169 = "\u001b[38;5;169m"
-    private final val BG_169 = "\u001b[48;5;169m"
-    private final val FG_170 = "\u001b[38;5;170m"
-    private final val BG_170 = "\u001b[48;5;170m"
-    private final val FG_171 = "\u001b[38;5;171m"
-    private final val BG_171 = "\u001b[48;5;171m"
-    private final val FG_172 = "\u001b[38;5;172m"
-    private final val BG_172 = "\u001b[48;5;172m"
-    private final val FG_173 = "\u001b[38;5;173m"
-    private final val BG_173 = "\u001b[48;5;173m"
-    private final val FG_174 = "\u001b[38;5;174m"
-    private final val BG_174 = "\u001b[48;5;174m"
-    private final val FG_175 = "\u001b[38;5;175m"
-    private final val BG_175 = "\u001b[48;5;175m"
-    private final val FG_176 = "\u001b[38;5;176m"
-    private final val BG_176 = "\u001b[48;5;176m"
-    private final val FG_177 = "\u001b[38;5;177m"
-    private final val BG_177 = "\u001b[48;5;177m"
-    private final val FG_178 = "\u001b[38;5;178m"
-    private final val BG_178 = "\u001b[48;5;178m"
-    private final val FG_179 = "\u001b[38;5;179m"
-    private final val BG_179 = "\u001b[48;5;179m"
-    private final val FG_180 = "\u001b[38;5;180m"
-    private final val BG_180 = "\u001b[48;5;180m"
-    private final val FG_181 = "\u001b[38;5;181m"
-    private final val BG_181 = "\u001b[48;5;181m"
-    private final val FG_182 = "\u001b[38;5;182m"
-    private final val BG_182 = "\u001b[48;5;182m"
-    private final val FG_183 = "\u001b[38;5;183m"
-    private final val BG_183 = "\u001b[48;5;183m"
-    private final val FG_184 = "\u001b[38;5;184m"
-    private final val BG_184 = "\u001b[48;5;184m"
-    private final val FG_185 = "\u001b[38;5;185m"
-    private final val BG_185 = "\u001b[48;5;185m"
-    private final val FG_186 = "\u001b[38;5;186m"
-    private final val BG_186 = "\u001b[48;5;186m"
-    private final val FG_187 = "\u001b[38;5;187m"
-    private final val BG_187 = "\u001b[48;5;187m"
-    private final val FG_188 = "\u001b[38;5;188m"
-    private final val BG_188 = "\u001b[48;5;188m"
-    private final val FG_189 = "\u001b[38;5;189m"
-    private final val BG_189 = "\u001b[48;5;189m"
-    private final val FG_190 = "\u001b[38;5;190m"
-    private final val BG_190 = "\u001b[48;5;190m"
-    private final val FG_191 = "\u001b[38;5;191m"
-    private final val BG_191 = "\u001b[48;5;191m"
-    private final val FG_192 = "\u001b[38;5;192m"
-    private final val BG_192 = "\u001b[48;5;192m"
-    private final val FG_193 = "\u001b[38;5;193m"
-    private final val BG_193 = "\u001b[48;5;193m"
-    private final val FG_194 = "\u001b[38;5;194m"
-    private final val BG_194 = "\u001b[48;5;194m"
-    private final val FG_195 = "\u001b[38;5;195m"
-    private final val BG_195 = "\u001b[48;5;195m"
-    private final val FG_196 = "\u001b[38;5;196m"
-    private final val BG_196 = "\u001b[48;5;196m"
-    private final val FG_197 = "\u001b[38;5;197m"
-    private final val BG_197 = "\u001b[48;5;197m"
-    private final val FG_198 = "\u001b[38;5;198m"
-    private final val BG_198 = "\u001b[48;5;198m"
-    private final val FG_199 = "\u001b[38;5;199m"
-    private final val BG_199 = "\u001b[48;5;199m"
-    private final val FG_200 = "\u001b[38;5;200m"
-    private final val BG_200 = "\u001b[48;5;200m"
-    private final val FG_201 = "\u001b[38;5;201m"
-    private final val BG_201 = "\u001b[48;5;201m"
-    private final val FG_202 = "\u001b[38;5;202m"
-    private final val BG_202 = "\u001b[48;5;202m"
-    private final val FG_203 = "\u001b[38;5;203m"
-    private final val BG_203 = "\u001b[48;5;203m"
-    private final val FG_204 = "\u001b[38;5;204m"
-    private final val BG_204 = "\u001b[48;5;204m"
-    private final val FG_205 = "\u001b[38;5;205m"
-    private final val BG_205 = "\u001b[48;5;205m"
-    private final val FG_206 = "\u001b[38;5;206m"
-    private final val BG_206 = "\u001b[48;5;206m"
-    private final val FG_207 = "\u001b[38;5;207m"
-    private final val BG_207 = "\u001b[48;5;207m"
-    private final val FG_208 = "\u001b[38;5;208m"
-    private final val BG_208 = "\u001b[48;5;208m"
-    private final val FG_209 = "\u001b[38;5;209m"
-    private final val BG_209 = "\u001b[48;5;209m"
-    private final val FG_210 = "\u001b[38;5;210m"
-    private final val BG_210 = "\u001b[48;5;210m"
-    private final val FG_211 = "\u001b[38;5;211m"
-    private final val BG_211 = "\u001b[48;5;211m"
-    private final val FG_212 = "\u001b[38;5;212m"
-    private final val BG_212 = "\u001b[48;5;212m"
-    private final val FG_213 = "\u001b[38;5;213m"
-    private final val BG_213 = "\u001b[48;5;213m"
-    private final val FG_214 = "\u001b[38;5;214m"
-    private final val BG_214 = "\u001b[48;5;214m"
-    private final val FG_215 = "\u001b[38;5;215m"
-    private final val BG_215 = "\u001b[48;5;215m"
-    private final val FG_216 = "\u001b[38;5;216m"
-    private final val BG_216 = "\u001b[48;5;216m"
-    private final val FG_217 = "\u001b[38;5;217m"
-    private final val BG_217 = "\u001b[48;5;217m"
-    private final val FG_218 = "\u001b[38;5;218m"
-    private final val BG_218 = "\u001b[48;5;218m"
-    private final val FG_219 = "\u001b[38;5;219m"
-    private final val BG_219 = "\u001b[48;5;219m"
-    private final val FG_220 = "\u001b[38;5;220m"
-    private final val BG_220 = "\u001b[48;5;220m"
-    private final val FG_221 = "\u001b[38;5;221m"
-    private final val BG_221 = "\u001b[48;5;221m"
-    private final val FG_222 = "\u001b[38;5;222m"
-    private final val BG_222 = "\u001b[48;5;222m"
-    private final val FG_223 = "\u001b[38;5;223m"
-    private final val BG_223 = "\u001b[48;5;223m"
-    private final val FG_224 = "\u001b[38;5;224m"
-    private final val BG_224 = "\u001b[48;5;224m"
-    private final val FG_225 = "\u001b[38;5;225m"
-    private final val BG_225 = "\u001b[48;5;225m"
-    private final val FG_226 = "\u001b[38;5;226m"
-    private final val BG_226 = "\u001b[48;5;226m"
-    private final val FG_227 = "\u001b[38;5;227m"
-    private final val BG_227 = "\u001b[48;5;227m"
-    private final val FG_228 = "\u001b[38;5;228m"
-    private final val BG_228 = "\u001b[48;5;228m"
-    private final val FG_229 = "\u001b[38;5;229m"
-    private final val BG_229 = "\u001b[48;5;229m"
-    private final val FG_230 = "\u001b[38;5;230m"
-    private final val BG_230 = "\u001b[48;5;230m"
-    private final val FG_231 = "\u001b[38;5;231m"
-    private final val BG_231 = "\u001b[48;5;231m"
-    private final val FG_232 = "\u001b[38;5;232m"
-    private final val BG_232 = "\u001b[48;5;232m"
-    private final val FG_233 = "\u001b[38;5;233m"
-    private final val BG_233 = "\u001b[48;5;233m"
-    private final val FG_234 = "\u001b[38;5;234m"
-    private final val BG_234 = "\u001b[48;5;234m"
-    private final val FG_235 = "\u001b[38;5;235m"
-    private final val BG_235 = "\u001b[48;5;235m"
-    private final val FG_236 = "\u001b[38;5;236m"
-    private final val BG_236 = "\u001b[48;5;236m"
-    private final val FG_237 = "\u001b[38;5;237m"
-    private final val BG_237 = "\u001b[48;5;237m"
-    private final val FG_238 = "\u001b[38;5;238m"
-    private final val BG_238 = "\u001b[48;5;238m"
-    private final val FG_239 = "\u001b[38;5;239m"
-    private final val BG_239 = "\u001b[48;5;239m"
-    private final val FG_240 = "\u001b[38;5;240m"
-    private final val BG_240 = "\u001b[48;5;240m"
-    private final val FG_241 = "\u001b[38;5;241m"
-    private final val BG_241 = "\u001b[48;5;241m"
-    private final val FG_242 = "\u001b[38;5;242m"
-    private final val BG_242 = "\u001b[48;5;242m"
-    private final val FG_243 = "\u001b[38;5;243m"
-    private final val BG_243 = "\u001b[48;5;243m"
-    private final val FG_244 = "\u001b[38;5;244m"
-    private final val BG_244 = "\u001b[48;5;244m"
-    private final val FG_245 = "\u001b[38;5;245m"
-    private final val BG_245 = "\u001b[48;5;245m"
-    private final val FG_246 = "\u001b[38;5;246m"
-    private final val BG_246 = "\u001b[48;5;246m"
-    private final val FG_247 = "\u001b[38;5;247m"
-    private final val BG_247 = "\u001b[48;5;247m"
-    private final val FG_248 = "\u001b[38;5;248m"
-    private final val BG_248 = "\u001b[48;5;248m"
-    private final val FG_249 = "\u001b[38;5;249m"
-    private final val BG_249 = "\u001b[48;5;249m"
-    private final val FG_250 = "\u001b[38;5;250m"
-    private final val BG_250 = "\u001b[48;5;250m"
-    private final val FG_251 = "\u001b[38;5;251m"
-    private final val BG_251 = "\u001b[48;5;251m"
-    private final val FG_252 = "\u001b[38;5;252m"
-    private final val BG_252 = "\u001b[48;5;252m"
-    private final val FG_253 = "\u001b[38;5;253m"
-    private final val BG_253 = "\u001b[48;5;253m"
-    private final val FG_254 = "\u001b[38;5;254m"
-    private final val BG_254 = "\u001b[48;5;254m"
-    private final val FG_255 = "\u001b[38;5;255m"
-    private final val BG_255 = "\u001b[48;5;255m"
+    private final val FG_1 = s"${CSI}38;5;1m"
+    private final val BG_1 = s"${CSI}48;5;1m"
+    private final val FG_2 = s"${CSI}38;5;2m"
+    private final val BG_2 = s"${CSI}48;5;2m"
+    private final val FG_3 = s"${CSI}38;5;3m"
+    private final val BG_3 = s"${CSI}48;5;3m"
+    private final val FG_4 = s"${CSI}38;5;4m"
+    private final val BG_4 = s"${CSI}48;5;4m"
+    private final val FG_5 = s"${CSI}38;5;5m"
+    private final val BG_5 = s"${CSI}48;5;5m"
+    private final val FG_6 = s"${CSI}38;5;6m"
+    private final val BG_6 = s"${CSI}48;5;6m"
+    private final val FG_7 = s"${CSI}38;5;7m"
+    private final val BG_7 = s"${CSI}48;5;7m"
+    private final val FG_8 = s"${CSI}38;5;8m"
+    private final val BG_8 = s"${CSI}48;5;8m"
+    private final val FG_9 = s"${CSI}38;5;9m"
+    private final val BG_9 = s"${CSI}48;5;9m"
+    private final val FG_10 = s"${CSI}38;5;10m"
+    private final val BG_10 = s"${CSI}48;5;10m"
+    private final val FG_11 = s"${CSI}38;5;11m"
+    private final val BG_11 = s"${CSI}48;5;11m"
+    private final val FG_12 = s"${CSI}38;5;12m"
+    private final val BG_12 = s"${CSI}48;5;12m"
+    private final val FG_13 = s"${CSI}38;5;13m"
+    private final val BG_13 = s"${CSI}48;5;13m"
+    private final val FG_14 = s"${CSI}38;5;14m"
+    private final val BG_14 = s"${CSI}48;5;14m"
+    private final val FG_15 = s"${CSI}38;5;15m"
+    private final val BG_15 = s"${CSI}48;5;15m"
+    private final val FG_16 = s"${CSI}38;5;16m"
+    private final val BG_16 = s"${CSI}48;5;16m"
+    private final val FG_17 = s"${CSI}38;5;17m"
+    private final val BG_17 = s"${CSI}48;5;17m"
+    private final val FG_18 = s"${CSI}38;5;18m"
+    private final val BG_18 = s"${CSI}48;5;18m"
+    private final val FG_19 = s"${CSI}38;5;19m"
+    private final val BG_19 = s"${CSI}48;5;19m"
+    private final val FG_20 = s"${CSI}38;5;20m"
+    private final val BG_20 = s"${CSI}48;5;20m"
+    private final val FG_21 = s"${CSI}38;5;21m"
+    private final val BG_21 = s"${CSI}48;5;21m"
+    private final val FG_22 = s"${CSI}38;5;22m"
+    private final val BG_22 = s"${CSI}48;5;22m"
+    private final val FG_23 = s"${CSI}38;5;23m"
+    private final val BG_23 = s"${CSI}48;5;23m"
+    private final val FG_24 = s"${CSI}38;5;24m"
+    private final val BG_24 = s"${CSI}48;5;24m"
+    private final val FG_25 = s"${CSI}38;5;25m"
+    private final val BG_25 = s"${CSI}48;5;25m"
+    private final val FG_26 = s"${CSI}38;5;26m"
+    private final val BG_26 = s"${CSI}48;5;26m"
+    private final val FG_27 = s"${CSI}38;5;27m"
+    private final val BG_27 = s"${CSI}48;5;27m"
+    private final val FG_28 = s"${CSI}38;5;28m"
+    private final val BG_28 = s"${CSI}48;5;28m"
+    private final val FG_29 = s"${CSI}38;5;29m"
+    private final val BG_29 = s"${CSI}48;5;29m"
+    private final val FG_30 = s"${CSI}38;5;30m"
+    private final val BG_30 = s"${CSI}48;5;30m"
+    private final val FG_31 = s"${CSI}38;5;31m"
+    private final val BG_31 = s"${CSI}48;5;31m"
+    private final val FG_32 = s"${CSI}38;5;32m"
+    private final val BG_32 = s"${CSI}48;5;32m"
+    private final val FG_33 = s"${CSI}38;5;33m"
+    private final val BG_33 = s"${CSI}48;5;33m"
+    private final val FG_34 = s"${CSI}38;5;34m"
+    private final val BG_34 = s"${CSI}48;5;34m"
+    private final val FG_35 = s"${CSI}38;5;35m"
+    private final val BG_35 = s"${CSI}48;5;35m"
+    private final val FG_36 = s"${CSI}38;5;36m"
+    private final val BG_36 = s"${CSI}48;5;36m"
+    private final val FG_37 = s"${CSI}38;5;37m"
+    private final val BG_37 = s"${CSI}48;5;37m"
+    private final val FG_38 = s"${CSI}38;5;38m"
+    private final val BG_38 = s"${CSI}48;5;38m"
+    private final val FG_39 = s"${CSI}38;5;39m"
+    private final val BG_39 = s"${CSI}48;5;39m"
+    private final val FG_40 = s"${CSI}38;5;40m"
+    private final val BG_40 = s"${CSI}48;5;40m"
+    private final val FG_41 = s"${CSI}38;5;41m"
+    private final val BG_41 = s"${CSI}48;5;41m"
+    private final val FG_42 = s"${CSI}38;5;42m"
+    private final val BG_42 = s"${CSI}48;5;42m"
+    private final val FG_43 = s"${CSI}38;5;43m"
+    private final val BG_43 = s"${CSI}48;5;43m"
+    private final val FG_44 = s"${CSI}38;5;44m"
+    private final val BG_44 = s"${CSI}48;5;44m"
+    private final val FG_45 = s"${CSI}38;5;45m"
+    private final val BG_45 = s"${CSI}48;5;45m"
+    private final val FG_46 = s"${CSI}38;5;46m"
+    private final val BG_46 = s"${CSI}48;5;46m"
+    private final val FG_47 = s"${CSI}38;5;47m"
+    private final val BG_47 = s"${CSI}48;5;47m"
+    private final val FG_48 = s"${CSI}38;5;48m"
+    private final val BG_48 = s"${CSI}48;5;48m"
+    private final val FG_49 = s"${CSI}38;5;49m"
+    private final val BG_49 = s"${CSI}48;5;49m"
+    private final val FG_50 = s"${CSI}38;5;50m"
+    private final val BG_50 = s"${CSI}48;5;50m"
+    private final val FG_51 = s"${CSI}38;5;51m"
+    private final val BG_51 = s"${CSI}48;5;51m"
+    private final val FG_52 = s"${CSI}38;5;52m"
+    private final val BG_52 = s"${CSI}48;5;52m"
+    private final val FG_53 = s"${CSI}38;5;53m"
+    private final val BG_53 = s"${CSI}48;5;53m"
+    private final val FG_54 = s"${CSI}38;5;54m"
+    private final val BG_54 = s"${CSI}48;5;54m"
+    private final val FG_55 = s"${CSI}38;5;55m"
+    private final val BG_55 = s"${CSI}48;5;55m"
+    private final val FG_56 = s"${CSI}38;5;56m"
+    private final val BG_56 = s"${CSI}48;5;56m"
+    private final val FG_57 = s"${CSI}38;5;57m"
+    private final val BG_57 = s"${CSI}48;5;57m"
+    private final val FG_58 = s"${CSI}38;5;58m"
+    private final val BG_58 = s"${CSI}48;5;58m"
+    private final val FG_59 = s"${CSI}38;5;59m"
+    private final val BG_59 = s"${CSI}48;5;59m"
+    private final val FG_60 = s"${CSI}38;5;60m"
+    private final val BG_60 = s"${CSI}48;5;60m"
+    private final val FG_61 = s"${CSI}38;5;61m"
+    private final val BG_61 = s"${CSI}48;5;61m"
+    private final val FG_62 = s"${CSI}38;5;62m"
+    private final val BG_62 = s"${CSI}48;5;62m"
+    private final val FG_63 = s"${CSI}38;5;63m"
+    private final val BG_63 = s"${CSI}48;5;63m"
+    private final val FG_64 = s"${CSI}38;5;64m"
+    private final val BG_64 = s"${CSI}48;5;64m"
+    private final val FG_65 = s"${CSI}38;5;65m"
+    private final val BG_65 = s"${CSI}48;5;65m"
+    private final val FG_66 = s"${CSI}38;5;66m"
+    private final val BG_66 = s"${CSI}48;5;66m"
+    private final val FG_67 = s"${CSI}38;5;67m"
+    private final val BG_67 = s"${CSI}48;5;67m"
+    private final val FG_68 = s"${CSI}38;5;68m"
+    private final val BG_68 = s"${CSI}48;5;68m"
+    private final val FG_69 = s"${CSI}38;5;69m"
+    private final val BG_69 = s"${CSI}48;5;69m"
+    private final val FG_70 = s"${CSI}38;5;70m"
+    private final val BG_70 = s"${CSI}48;5;70m"
+    private final val FG_71 = s"${CSI}38;5;71m"
+    private final val BG_71 = s"${CSI}48;5;71m"
+    private final val FG_72 = s"${CSI}38;5;72m"
+    private final val BG_72 = s"${CSI}48;5;72m"
+    private final val FG_73 = s"${CSI}38;5;73m"
+    private final val BG_73 = s"${CSI}48;5;73m"
+    private final val FG_74 = s"${CSI}38;5;74m"
+    private final val BG_74 = s"${CSI}48;5;74m"
+    private final val FG_75 = s"${CSI}38;5;75m"
+    private final val BG_75 = s"${CSI}48;5;75m"
+    private final val FG_76 = s"${CSI}38;5;76m"
+    private final val BG_76 = s"${CSI}48;5;76m"
+    private final val FG_77 = s"${CSI}38;5;77m"
+    private final val BG_77 = s"${CSI}48;5;77m"
+    private final val FG_78 = s"${CSI}38;5;78m"
+    private final val BG_78 = s"${CSI}48;5;78m"
+    private final val FG_79 = s"${CSI}38;5;79m"
+    private final val BG_79 = s"${CSI}48;5;79m"
+    private final val FG_80 = s"${CSI}38;5;80m"
+    private final val BG_80 = s"${CSI}48;5;80m"
+    private final val FG_81 = s"${CSI}38;5;81m"
+    private final val BG_81 = s"${CSI}48;5;81m"
+    private final val FG_82 = s"${CSI}38;5;82m"
+    private final val BG_82 = s"${CSI}48;5;82m"
+    private final val FG_83 = s"${CSI}38;5;83m"
+    private final val BG_83 = s"${CSI}48;5;83m"
+    private final val FG_84 = s"${CSI}38;5;84m"
+    private final val BG_84 = s"${CSI}48;5;84m"
+    private final val FG_85 = s"${CSI}38;5;85m"
+    private final val BG_85 = s"${CSI}48;5;85m"
+    private final val FG_86 = s"${CSI}38;5;86m"
+    private final val BG_86 = s"${CSI}48;5;86m"
+    private final val FG_87 = s"${CSI}38;5;87m"
+    private final val BG_87 = s"${CSI}48;5;87m"
+    private final val FG_88 = s"${CSI}38;5;88m"
+    private final val BG_88 = s"${CSI}48;5;88m"
+    private final val FG_89 = s"${CSI}38;5;89m"
+    private final val BG_89 = s"${CSI}48;5;89m"
+    private final val FG_90 = s"${CSI}38;5;90m"
+    private final val BG_90 = s"${CSI}48;5;90m"
+    private final val FG_91 = s"${CSI}38;5;91m"
+    private final val BG_91 = s"${CSI}48;5;91m"
+    private final val FG_92 = s"${CSI}38;5;92m"
+    private final val BG_92 = s"${CSI}48;5;92m"
+    private final val FG_93 = s"${CSI}38;5;93m"
+    private final val BG_93 = s"${CSI}48;5;93m"
+    private final val FG_94 = s"${CSI}38;5;94m"
+    private final val BG_94 = s"${CSI}48;5;94m"
+    private final val FG_95 = s"${CSI}38;5;95m"
+    private final val BG_95 = s"${CSI}48;5;95m"
+    private final val FG_96 = s"${CSI}38;5;96m"
+    private final val BG_96 = s"${CSI}48;5;96m"
+    private final val FG_97 = s"${CSI}38;5;97m"
+    private final val BG_97 = s"${CSI}48;5;97m"
+    private final val FG_98 = s"${CSI}38;5;98m"
+    private final val BG_98 = s"${CSI}48;5;98m"
+    private final val FG_99 = s"${CSI}38;5;99m"
+    private final val BG_99 = s"${CSI}48;5;99m"
+    private final val FG_100 = s"${CSI}38;5;100m"
+    private final val BG_100 = s"${CSI}48;5;100m"
+    private final val FG_101 = s"${CSI}38;5;101m"
+    private final val BG_101 = s"${CSI}48;5;101m"
+    private final val FG_102 = s"${CSI}38;5;102m"
+    private final val BG_102 = s"${CSI}48;5;102m"
+    private final val FG_103 = s"${CSI}38;5;103m"
+    private final val BG_103 = s"${CSI}48;5;103m"
+    private final val FG_104 = s"${CSI}38;5;104m"
+    private final val BG_104 = s"${CSI}48;5;104m"
+    private final val FG_105 = s"${CSI}38;5;105m"
+    private final val BG_105 = s"${CSI}48;5;105m"
+    private final val FG_106 = s"${CSI}38;5;106m"
+    private final val BG_106 = s"${CSI}48;5;106m"
+    private final val FG_107 = s"${CSI}38;5;107m"
+    private final val BG_107 = s"${CSI}48;5;107m"
+    private final val FG_108 = s"${CSI}38;5;108m"
+    private final val BG_108 = s"${CSI}48;5;108m"
+    private final val FG_109 = s"${CSI}38;5;109m"
+    private final val BG_109 = s"${CSI}48;5;109m"
+    private final val FG_110 = s"${CSI}38;5;110m"
+    private final val BG_110 = s"${CSI}48;5;110m"
+    private final val FG_111 = s"${CSI}38;5;111m"
+    private final val BG_111 = s"${CSI}48;5;111m"
+    private final val FG_112 = s"${CSI}38;5;112m"
+    private final val BG_112 = s"${CSI}48;5;112m"
+    private final val FG_113 = s"${CSI}38;5;113m"
+    private final val BG_113 = s"${CSI}48;5;113m"
+    private final val FG_114 = s"${CSI}38;5;114m"
+    private final val BG_114 = s"${CSI}48;5;114m"
+    private final val FG_115 = s"${CSI}38;5;115m"
+    private final val BG_115 = s"${CSI}48;5;115m"
+    private final val FG_116 = s"${CSI}38;5;116m"
+    private final val BG_116 = s"${CSI}48;5;116m"
+    private final val FG_117 = s"${CSI}38;5;117m"
+    private final val BG_117 = s"${CSI}48;5;117m"
+    private final val FG_118 = s"${CSI}38;5;118m"
+    private final val BG_118 = s"${CSI}48;5;118m"
+    private final val FG_119 = s"${CSI}38;5;119m"
+    private final val BG_119 = s"${CSI}48;5;119m"
+    private final val FG_120 = s"${CSI}38;5;120m"
+    private final val BG_120 = s"${CSI}48;5;120m"
+    private final val FG_121 = s"${CSI}38;5;121m"
+    private final val BG_121 = s"${CSI}48;5;121m"
+    private final val FG_122 = s"${CSI}38;5;122m"
+    private final val BG_122 = s"${CSI}48;5;122m"
+    private final val FG_123 = s"${CSI}38;5;123m"
+    private final val BG_123 = s"${CSI}48;5;123m"
+    private final val FG_124 = s"${CSI}38;5;124m"
+    private final val BG_124 = s"${CSI}48;5;124m"
+    private final val FG_125 = s"${CSI}38;5;125m"
+    private final val BG_125 = s"${CSI}48;5;125m"
+    private final val FG_126 = s"${CSI}38;5;126m"
+    private final val BG_126 = s"${CSI}48;5;126m"
+    private final val FG_127 = s"${CSI}38;5;127m"
+    private final val BG_127 = s"${CSI}48;5;127m"
+    private final val FG_128 = s"${CSI}38;5;128m"
+    private final val BG_128 = s"${CSI}48;5;128m"
+    private final val FG_129 = s"${CSI}38;5;129m"
+    private final val BG_129 = s"${CSI}48;5;129m"
+    private final val FG_130 = s"${CSI}38;5;130m"
+    private final val BG_130 = s"${CSI}48;5;130m"
+    private final val FG_131 = s"${CSI}38;5;131m"
+    private final val BG_131 = s"${CSI}48;5;131m"
+    private final val FG_132 = s"${CSI}38;5;132m"
+    private final val BG_132 = s"${CSI}48;5;132m"
+    private final val FG_133 = s"${CSI}38;5;133m"
+    private final val BG_133 = s"${CSI}48;5;133m"
+    private final val FG_134 = s"${CSI}38;5;134m"
+    private final val BG_134 = s"${CSI}48;5;134m"
+    private final val FG_135 = s"${CSI}38;5;135m"
+    private final val BG_135 = s"${CSI}48;5;135m"
+    private final val FG_136 = s"${CSI}38;5;136m"
+    private final val BG_136 = s"${CSI}48;5;136m"
+    private final val FG_137 = s"${CSI}38;5;137m"
+    private final val BG_137 = s"${CSI}48;5;137m"
+    private final val FG_138 = s"${CSI}38;5;138m"
+    private final val BG_138 = s"${CSI}48;5;138m"
+    private final val FG_139 = s"${CSI}38;5;139m"
+    private final val BG_139 = s"${CSI}48;5;139m"
+    private final val FG_140 = s"${CSI}38;5;140m"
+    private final val BG_140 = s"${CSI}48;5;140m"
+    private final val FG_141 = s"${CSI}38;5;141m"
+    private final val BG_141 = s"${CSI}48;5;141m"
+    private final val FG_142 = s"${CSI}38;5;142m"
+    private final val BG_142 = s"${CSI}48;5;142m"
+    private final val FG_143 = s"${CSI}38;5;143m"
+    private final val BG_143 = s"${CSI}48;5;143m"
+    private final val FG_144 = s"${CSI}38;5;144m"
+    private final val BG_144 = s"${CSI}48;5;144m"
+    private final val FG_145 = s"${CSI}38;5;145m"
+    private final val BG_145 = s"${CSI}48;5;145m"
+    private final val FG_146 = s"${CSI}38;5;146m"
+    private final val BG_146 = s"${CSI}48;5;146m"
+    private final val FG_147 = s"${CSI}38;5;147m"
+    private final val BG_147 = s"${CSI}48;5;147m"
+    private final val FG_148 = s"${CSI}38;5;148m"
+    private final val BG_148 = s"${CSI}48;5;148m"
+    private final val FG_149 = s"${CSI}38;5;149m"
+    private final val BG_149 = s"${CSI}48;5;149m"
+    private final val FG_150 = s"${CSI}38;5;150m"
+    private final val BG_150 = s"${CSI}48;5;150m"
+    private final val FG_151 = s"${CSI}38;5;151m"
+    private final val BG_151 = s"${CSI}48;5;151m"
+    private final val FG_152 = s"${CSI}38;5;152m"
+    private final val BG_152 = s"${CSI}48;5;152m"
+    private final val FG_153 = s"${CSI}38;5;153m"
+    private final val BG_153 = s"${CSI}48;5;153m"
+    private final val FG_154 = s"${CSI}38;5;154m"
+    private final val BG_154 = s"${CSI}48;5;154m"
+    private final val FG_155 = s"${CSI}38;5;155m"
+    private final val BG_155 = s"${CSI}48;5;155m"
+    private final val FG_156 = s"${CSI}38;5;156m"
+    private final val BG_156 = s"${CSI}48;5;156m"
+    private final val FG_157 = s"${CSI}38;5;157m"
+    private final val BG_157 = s"${CSI}48;5;157m"
+    private final val FG_158 = s"${CSI}38;5;158m"
+    private final val BG_158 = s"${CSI}48;5;158m"
+    private final val FG_159 = s"${CSI}38;5;159m"
+    private final val BG_159 = s"${CSI}48;5;159m"
+    private final val FG_160 = s"${CSI}38;5;160m"
+    private final val BG_160 = s"${CSI}48;5;160m"
+    private final val FG_161 = s"${CSI}38;5;161m"
+    private final val BG_161 = s"${CSI}48;5;161m"
+    private final val FG_162 = s"${CSI}38;5;162m"
+    private final val BG_162 = s"${CSI}48;5;162m"
+    private final val FG_163 = s"${CSI}38;5;163m"
+    private final val BG_163 = s"${CSI}48;5;163m"
+    private final val FG_164 = s"${CSI}38;5;164m"
+    private final val BG_164 = s"${CSI}48;5;164m"
+    private final val FG_165 = s"${CSI}38;5;165m"
+    private final val BG_165 = s"${CSI}48;5;165m"
+    private final val FG_166 = s"${CSI}38;5;166m"
+    private final val BG_166 = s"${CSI}48;5;166m"
+    private final val FG_167 = s"${CSI}38;5;167m"
+    private final val BG_167 = s"${CSI}48;5;167m"
+    private final val FG_168 = s"${CSI}38;5;168m"
+    private final val BG_168 = s"${CSI}48;5;168m"
+    private final val FG_169 = s"${CSI}38;5;169m"
+    private final val BG_169 = s"${CSI}48;5;169m"
+    private final val FG_170 = s"${CSI}38;5;170m"
+    private final val BG_170 = s"${CSI}48;5;170m"
+    private final val FG_171 = s"${CSI}38;5;171m"
+    private final val BG_171 = s"${CSI}48;5;171m"
+    private final val FG_172 = s"${CSI}38;5;172m"
+    private final val BG_172 = s"${CSI}48;5;172m"
+    private final val FG_173 = s"${CSI}38;5;173m"
+    private final val BG_173 = s"${CSI}48;5;173m"
+    private final val FG_174 = s"${CSI}38;5;174m"
+    private final val BG_174 = s"${CSI}48;5;174m"
+    private final val FG_175 = s"${CSI}38;5;175m"
+    private final val BG_175 = s"${CSI}48;5;175m"
+    private final val FG_176 = s"${CSI}38;5;176m"
+    private final val BG_176 = s"${CSI}48;5;176m"
+    private final val FG_177 = s"${CSI}38;5;177m"
+    private final val BG_177 = s"${CSI}48;5;177m"
+    private final val FG_178 = s"${CSI}38;5;178m"
+    private final val BG_178 = s"${CSI}48;5;178m"
+    private final val FG_179 = s"${CSI}38;5;179m"
+    private final val BG_179 = s"${CSI}48;5;179m"
+    private final val FG_180 = s"${CSI}38;5;180m"
+    private final val BG_180 = s"${CSI}48;5;180m"
+    private final val FG_181 = s"${CSI}38;5;181m"
+    private final val BG_181 = s"${CSI}48;5;181m"
+    private final val FG_182 = s"${CSI}38;5;182m"
+    private final val BG_182 = s"${CSI}48;5;182m"
+    private final val FG_183 = s"${CSI}38;5;183m"
+    private final val BG_183 = s"${CSI}48;5;183m"
+    private final val FG_184 = s"${CSI}38;5;184m"
+    private final val BG_184 = s"${CSI}48;5;184m"
+    private final val FG_185 = s"${CSI}38;5;185m"
+    private final val BG_185 = s"${CSI}48;5;185m"
+    private final val FG_186 = s"${CSI}38;5;186m"
+    private final val BG_186 = s"${CSI}48;5;186m"
+    private final val FG_187 = s"${CSI}38;5;187m"
+    private final val BG_187 = s"${CSI}48;5;187m"
+    private final val FG_188 = s"${CSI}38;5;188m"
+    private final val BG_188 = s"${CSI}48;5;188m"
+    private final val FG_189 = s"${CSI}38;5;189m"
+    private final val BG_189 = s"${CSI}48;5;189m"
+    private final val FG_190 = s"${CSI}38;5;190m"
+    private final val BG_190 = s"${CSI}48;5;190m"
+    private final val FG_191 = s"${CSI}38;5;191m"
+    private final val BG_191 = s"${CSI}48;5;191m"
+    private final val FG_192 = s"${CSI}38;5;192m"
+    private final val BG_192 = s"${CSI}48;5;192m"
+    private final val FG_193 = s"${CSI}38;5;193m"
+    private final val BG_193 = s"${CSI}48;5;193m"
+    private final val FG_194 = s"${CSI}38;5;194m"
+    private final val BG_194 = s"${CSI}48;5;194m"
+    private final val FG_195 = s"${CSI}38;5;195m"
+    private final val BG_195 = s"${CSI}48;5;195m"
+    private final val FG_196 = s"${CSI}38;5;196m"
+    private final val BG_196 = s"${CSI}48;5;196m"
+    private final val FG_197 = s"${CSI}38;5;197m"
+    private final val BG_197 = s"${CSI}48;5;197m"
+    private final val FG_198 = s"${CSI}38;5;198m"
+    private final val BG_198 = s"${CSI}48;5;198m"
+    private final val FG_199 = s"${CSI}38;5;199m"
+    private final val BG_199 = s"${CSI}48;5;199m"
+    private final val FG_200 = s"${CSI}38;5;200m"
+    private final val BG_200 = s"${CSI}48;5;200m"
+    private final val FG_201 = s"${CSI}38;5;201m"
+    private final val BG_201 = s"${CSI}48;5;201m"
+    private final val FG_202 = s"${CSI}38;5;202m"
+    private final val BG_202 = s"${CSI}48;5;202m"
+    private final val FG_203 = s"${CSI}38;5;203m"
+    private final val BG_203 = s"${CSI}48;5;203m"
+    private final val FG_204 = s"${CSI}38;5;204m"
+    private final val BG_204 = s"${CSI}48;5;204m"
+    private final val FG_205 = s"${CSI}38;5;205m"
+    private final val BG_205 = s"${CSI}48;5;205m"
+    private final val FG_206 = s"${CSI}38;5;206m"
+    private final val BG_206 = s"${CSI}48;5;206m"
+    private final val FG_207 = s"${CSI}38;5;207m"
+    private final val BG_207 = s"${CSI}48;5;207m"
+    private final val FG_208 = s"${CSI}38;5;208m"
+    private final val BG_208 = s"${CSI}48;5;208m"
+    private final val FG_209 = s"${CSI}38;5;209m"
+    private final val BG_209 = s"${CSI}48;5;209m"
+    private final val FG_210 = s"${CSI}38;5;210m"
+    private final val BG_210 = s"${CSI}48;5;210m"
+    private final val FG_211 = s"${CSI}38;5;211m"
+    private final val BG_211 = s"${CSI}48;5;211m"
+    private final val FG_212 = s"${CSI}38;5;212m"
+    private final val BG_212 = s"${CSI}48;5;212m"
+    private final val FG_213 = s"${CSI}38;5;213m"
+    private final val BG_213 = s"${CSI}48;5;213m"
+    private final val FG_214 = s"${CSI}38;5;214m"
+    private final val BG_214 = s"${CSI}48;5;214m"
+    private final val FG_215 = s"${CSI}38;5;215m"
+    private final val BG_215 = s"${CSI}48;5;215m"
+    private final val FG_216 = s"${CSI}38;5;216m"
+    private final val BG_216 = s"${CSI}48;5;216m"
+    private final val FG_217 = s"${CSI}38;5;217m"
+    private final val BG_217 = s"${CSI}48;5;217m"
+    private final val FG_218 = s"${CSI}38;5;218m"
+    private final val BG_218 = s"${CSI}48;5;218m"
+    private final val FG_219 = s"${CSI}38;5;219m"
+    private final val BG_219 = s"${CSI}48;5;219m"
+    private final val FG_220 = s"${CSI}38;5;220m"
+    private final val BG_220 = s"${CSI}48;5;220m"
+    private final val FG_221 = s"${CSI}38;5;221m"
+    private final val BG_221 = s"${CSI}48;5;221m"
+    private final val FG_222 = s"${CSI}38;5;222m"
+    private final val BG_222 = s"${CSI}48;5;222m"
+    private final val FG_223 = s"${CSI}38;5;223m"
+    private final val BG_223 = s"${CSI}48;5;223m"
+    private final val FG_224 = s"${CSI}38;5;224m"
+    private final val BG_224 = s"${CSI}48;5;224m"
+    private final val FG_225 = s"${CSI}38;5;225m"
+    private final val BG_225 = s"${CSI}48;5;225m"
+    private final val FG_226 = s"${CSI}38;5;226m"
+    private final val BG_226 = s"${CSI}48;5;226m"
+    private final val FG_227 = s"${CSI}38;5;227m"
+    private final val BG_227 = s"${CSI}48;5;227m"
+    private final val FG_228 = s"${CSI}38;5;228m"
+    private final val BG_228 = s"${CSI}48;5;228m"
+    private final val FG_229 = s"${CSI}38;5;229m"
+    private final val BG_229 = s"${CSI}48;5;229m"
+    private final val FG_230 = s"${CSI}38;5;230m"
+    private final val BG_230 = s"${CSI}48;5;230m"
+    private final val FG_231 = s"${CSI}38;5;231m"
+    private final val BG_231 = s"${CSI}48;5;231m"
+    private final val FG_232 = s"${CSI}38;5;232m"
+    private final val BG_232 = s"${CSI}48;5;232m"
+    private final val FG_233 = s"${CSI}38;5;233m"
+    private final val BG_233 = s"${CSI}48;5;233m"
+    private final val FG_234 = s"${CSI}38;5;234m"
+    private final val BG_234 = s"${CSI}48;5;234m"
+    private final val FG_235 = s"${CSI}38;5;235m"
+    private final val BG_235 = s"${CSI}48;5;235m"
+    private final val FG_236 = s"${CSI}38;5;236m"
+    private final val BG_236 = s"${CSI}48;5;236m"
+    private final val FG_237 = s"${CSI}38;5;237m"
+    private final val BG_237 = s"${CSI}48;5;237m"
+    private final val FG_238 = s"${CSI}38;5;238m"
+    private final val BG_238 = s"${CSI}48;5;238m"
+    private final val FG_239 = s"${CSI}38;5;239m"
+    private final val BG_239 = s"${CSI}48;5;239m"
+    private final val FG_240 = s"${CSI}38;5;240m"
+    private final val BG_240 = s"${CSI}48;5;240m"
+    private final val FG_241 = s"${CSI}38;5;241m"
+    private final val BG_241 = s"${CSI}48;5;241m"
+    private final val FG_242 = s"${CSI}38;5;242m"
+    private final val BG_242 = s"${CSI}48;5;242m"
+    private final val FG_243 = s"${CSI}38;5;243m"
+    private final val BG_243 = s"${CSI}48;5;243m"
+    private final val FG_244 = s"${CSI}38;5;244m"
+    private final val BG_244 = s"${CSI}48;5;244m"
+    private final val FG_245 = s"${CSI}38;5;245m"
+    private final val BG_245 = s"${CSI}48;5;245m"
+    private final val FG_246 = s"${CSI}38;5;246m"
+    private final val BG_246 = s"${CSI}48;5;246m"
+    private final val FG_247 = s"${CSI}38;5;247m"
+    private final val BG_247 = s"${CSI}48;5;247m"
+    private final val FG_248 = s"${CSI}38;5;248m"
+    private final val BG_248 = s"${CSI}48;5;248m"
+    private final val FG_249 = s"${CSI}38;5;249m"
+    private final val BG_249 = s"${CSI}48;5;249m"
+    private final val FG_250 = s"${CSI}38;5;250m"
+    private final val BG_250 = s"${CSI}48;5;250m"
+    private final val FG_251 = s"${CSI}38;5;251m"
+    private final val BG_251 = s"${CSI}48;5;251m"
+    private final val FG_252 = s"${CSI}38;5;252m"
+    private final val BG_252 = s"${CSI}48;5;252m"
+    private final val FG_253 = s"${CSI}38;5;253m"
+    private final val BG_253 = s"${CSI}48;5;253m"
+    private final val FG_254 = s"${CSI}38;5;254m"
+    private final val BG_254 = s"${CSI}48;5;254m"
+    private final val FG_255 = s"${CSI}38;5;255m"
+    private final val BG_255 = s"${CSI}48;5;255m"
 
     def ansi256Fg(color: Int) = if (isEnabled) s"[38;5;${color}m" else ""
     def ansi256Bg(color: Int) = if (isEnabled) s"[48;5;${color}m" else ""
@@ -1359,31 +1364,31 @@
     def ansi256(fgColor: Int, bgColor: Int, s: Any): String = s"${ansi256Fg(fgColor)}${ansi256Bg(bgColor)}${s.toString}$ansiReset"
 
     // Effects.
-    private final val BOLD = "\u001b[1m"
-    private final val UNDERLINED = "\u001b[4m"
-    private final val BLINK = "\u001b[5m"
-    private final val REVERSED = "\u001b[7m"
-    private final val INVISIBLE = "\u001b[8m"
+    private final val BOLD = s"${CSI}1m"
+    private final val UNDERLINED = s"${CSI}4m"
+    private final val BLINK = s"${CSI}5m"
+    private final val REVERSED = s"${CSI}7m"
+    private final val INVISIBLE = s"${CSI}8m"
 
     // Erase functions.
-    private final val CLEAR_SCREEN = "\u001b[J"
-    private final val CLEAR_SCREEN_AFTER = "\u001b[0J"
-    private final val CLEAR_SCREEN_BEFORE = "\u001b[1J"
-    private final val CLEAR_LINE = "\u001b[K"
-    private final val CLEAR_LINE_AFTER = "\u001b[0K"
-    private final val CLEAR_LINE_BEFORE = "\u001b[1K"
+    private final val CLEAR_SCREEN = s"${CSI}J"
+    private final val CLEAR_SCREEN_AFTER = s"${CSI}0J"
+    private final val CLEAR_SCREEN_BEFORE = s"${CSI}1J"
+    private final val CLEAR_LINE = s"${CSI}K"
+    private final val CLEAR_LINE_AFTER = s"${CSI}0K"
+    private final val CLEAR_LINE_BEFORE = s"${CSI}1K"
 
     // Cursor moves.
-    private final val CURSOR_UP = "\u001b[1A"
-    private final val CURSOR_DOWN = "\u001b[1B"
-    private final val CURSOR_LEFT = "\u001b[1D"
-    private final val CURSOR_RIGHT = "\u001b[1C"
-    private final val CURSOR_POS_SAVE= "\u001b[s"
-    private final val CURSOR_POS_RESTORE = "\u001b[u"
-    private final val CURSOR_LINE_HOME = "\u001b[0G"
-    private final val CURSOR_SCREEN_HOME = "\u001b[H"
-    private final val CURSOR_HIDE = "\u001b[?25l"
-    private final val CURSOR_SHOW = "\u001b[?25h"
+    private final val CURSOR_UP = s"${CSI}1A"
+    private final val CURSOR_DOWN = s"${CSI}1B"
+    private final val CURSOR_LEFT = s"${CSI}1D"
+    private final val CURSOR_RIGHT = s"${CSI}1C"
+    private final val CURSOR_POS_SAVE= s"${CSI}s"
+    private final val CURSOR_POS_RESTORE = s"${CSI}u"
+    private final val CURSOR_LINE_HOME = s"${CSI}0G"
+    private final val CURSOR_SCREEN_HOME = s"${CSI}H"
+    private final val CURSOR_HIDE = s"${CSI}?25l"
+    private final val CURSOR_SHOW = s"${CSI}?25h"
 
     def isEnabled: Boolean = !U.isSysEnvTrue(PROP)