GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Completed
Push — develop ( 4690c8...bf80d8 )
by gyeong-won
08:37
created
classes/xml/xmlquery/argument/ConditionArgument.class.php 3 patches
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -116,7 +116,7 @@
 block discarded – undo
116 116
 	 * In this case, the column type is retrieved according to argument
117 117
 	 * value type (using the PHP function is_numeric).
118 118
 	 *
119
-	 * @return type string
119
+	 * @return string string
120 120
 	 */
121 121
 	function getType()
122 122
 	{
Please login to merge, or discard this patch.
Braces   +5 added lines, -10 removed lines patch added patch discarded remove patch
@@ -56,8 +56,7 @@  discard block
 block discarded – undo
56 56
 				if(defined('__CUBRID_VERSION__') && __CUBRID_VERSION__ >= '8.4.1')
57 57
 				{
58 58
 					$this->value = '^' . str_replace('%', '(.*)', preg_quote($value));
59
-				}
60
-				else
59
+				} else
61 60
 				{
62 61
 					$this->value = $value . '%';
63 62
 				}
@@ -66,8 +65,7 @@  discard block
 block discarded – undo
66 65
 				if(defined('__CUBRID_VERSION__') && __CUBRID_VERSION__ >= '8.4.1')
67 66
 				{
68 67
 					$this->value = str_replace('%', '(.*)', preg_quote($value)) . '$';
69
-				}
70
-				else
68
+				} else
71 69
 				{
72 70
 					$this->value = '%' . $value;
73 71
 				}
@@ -76,8 +74,7 @@  discard block
 block discarded – undo
76 74
 				if(defined('__CUBRID_VERSION__') && __CUBRID_VERSION__ >= '8.4.1')
77 75
 				{
78 76
 					$this->value = str_replace('%', '(.*)', preg_quote($value));
79
-				}
80
-				else
77
+				} else
81 78
 				{
82 79
 					$this->value = '%' . $value . '%';
83 80
 				}
@@ -123,12 +120,10 @@  discard block
 block discarded – undo
123 120
 		if($this->type)
124 121
 		{
125 122
 			return $this->type;
126
-		}
127
-		else if(!is_numeric($this->value))
123
+		} else if(!is_numeric($this->value))
128 124
 		{
129 125
 			return 'varchar';
130
-		}
131
-		else
126
+		} else
132 127
 		{
133 128
 			return '';
134 129
 		}
Please login to merge, or discard this patch.
Spacing   +20 added lines, -20 removed lines patch added patch discarded remove patch
@@ -26,7 +26,7 @@  discard block
 block discarded – undo
26 26
 	function ConditionArgument($name, $value, $operation)
27 27
 	{
28 28
 		$operationList = array('in' => 1, 'notin' => 1, 'not_in' => 1, 'between' => 1);
29
-		if(isset($value) && isset($operationList[$operation]) && !is_array($value) && $value != '')
29
+		if (isset($value) && isset($operationList[$operation]) && !is_array($value) && $value != '')
30 30
 		{
31 31
 			$value = str_replace(' ', '', $value);
32 32
 			$value = str_replace('\'', '', $value);
@@ -42,7 +42,7 @@  discard block
 block discarded – undo
42 42
 	 */
43 43
 	function createConditionValue()
44 44
 	{
45
-		if(!isset($this->value))
45
+		if (!isset($this->value))
46 46
 		{
47 47
 			return;
48 48
 		}
@@ -50,56 +50,56 @@  discard block
 block discarded – undo
50 50
 		$operation = $this->operation;
51 51
 		$value = $this->value;
52 52
 
53
-		switch($operation)
53
+		switch ($operation)
54 54
 		{
55 55
 			case 'like_prefix' :
56
-				if(defined('__CUBRID_VERSION__') && __CUBRID_VERSION__ >= '8.4.1')
56
+				if (defined('__CUBRID_VERSION__') && __CUBRID_VERSION__ >= '8.4.1')
57 57
 				{
58
-					$this->value = '^' . str_replace('%', '(.*)', preg_quote($value));
58
+					$this->value = '^'.str_replace('%', '(.*)', preg_quote($value));
59 59
 				}
60 60
 				else
61 61
 				{
62
-					$this->value = $value . '%';
62
+					$this->value = $value.'%';
63 63
 				}
64 64
 				break;
65 65
 			case 'like_tail' :
66
-				if(defined('__CUBRID_VERSION__') && __CUBRID_VERSION__ >= '8.4.1')
66
+				if (defined('__CUBRID_VERSION__') && __CUBRID_VERSION__ >= '8.4.1')
67 67
 				{
68
-					$this->value = str_replace('%', '(.*)', preg_quote($value)) . '$';
68
+					$this->value = str_replace('%', '(.*)', preg_quote($value)).'$';
69 69
 				}
70 70
 				else
71 71
 				{
72
-					$this->value = '%' . $value;
72
+					$this->value = '%'.$value;
73 73
 				}
74 74
 				break;
75 75
 			case 'like' :
76
-				if(defined('__CUBRID_VERSION__') && __CUBRID_VERSION__ >= '8.4.1')
76
+				if (defined('__CUBRID_VERSION__') && __CUBRID_VERSION__ >= '8.4.1')
77 77
 				{
78 78
 					$this->value = str_replace('%', '(.*)', preg_quote($value));
79 79
 				}
80 80
 				else
81 81
 				{
82
-					$this->value = '%' . $value . '%';
82
+					$this->value = '%'.$value.'%';
83 83
 				}
84 84
 				break;
85 85
 			case 'notlike' :
86
-				$this->value = '%' . $value . '%';
86
+				$this->value = '%'.$value.'%';
87 87
 				break;
88 88
 			case 'notlike_prefix' :
89
-				$this->value = $value . '%';
89
+				$this->value = $value.'%';
90 90
 				break;
91 91
 			case 'notlike_tail' :
92
-				$this->value = '%' . $value;
92
+				$this->value = '%'.$value;
93 93
 				break;
94 94
 			case 'in':
95
-				if(!is_array($value))
95
+				if (!is_array($value))
96 96
 				{
97 97
 					$this->value = array($value);
98 98
 				}
99 99
 				break;
100 100
 			case 'notin':
101 101
 			case 'not_in':
102
-				if(!is_array($value))
102
+				if (!is_array($value))
103 103
 				{
104 104
 					$this->value = array($value);
105 105
 				}
@@ -120,11 +120,11 @@  discard block
 block discarded – undo
120 120
 	 */
121 121
 	function getType()
122 122
 	{
123
-		if($this->type)
123
+		if ($this->type)
124 124
 		{
125 125
 			return $this->type;
126 126
 		}
127
-		else if(!is_numeric($this->value))
127
+		else if (!is_numeric($this->value))
128 128
 		{
129 129
 			return 'varchar';
130 130
 		}
@@ -136,11 +136,11 @@  discard block
 block discarded – undo
136 136
 
137 137
 	function setColumnType($column_type)
138 138
 	{
139
-		if(!isset($this->value))
139
+		if (!isset($this->value))
140 140
 		{
141 141
 			return;
142 142
 		}
143
-		if($column_type === '')
143
+		if ($column_type === '')
144 144
 		{
145 145
 			return;
146 146
 		}
Please login to merge, or discard this patch.
classes/xml/xmlquery/QueryParser.class.php 3 patches
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -28,7 +28,7 @@
 block discarded – undo
28 28
 	 *
29 29
 	 * @param object $query XML object obtained after reading the XML Query file
30 30
 	 * @param bool $isSubQuery
31
-	 * @return void
31
+	 * @return string
32 32
 	 */
33 33
 	function QueryParser($query = NULL, $isSubQuery = FALSE)
34 34
 	{
Please login to merge, or discard this patch.
Braces   +1 added lines, -2 removed lines patch added patch discarded remove patch
@@ -59,8 +59,7 @@
 block discarded – undo
59 59
 			$target = 'modules';
60 60
 			$module = $id_args[0];
61 61
 			$id = $id_args[1];
62
-		}
63
-		else if(count($id_args) == 3)
62
+		} else if(count($id_args) == 3)
64 63
 		{
65 64
 			$target = $id_args[0];
66 65
 			$targetList = array('modules' => 1, 'addons' => 1, 'widgets' => 1);
Please login to merge, or discard this patch.
Spacing   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -32,7 +32,7 @@  discard block
 block discarded – undo
32 32
 	 */
33 33
 	function QueryParser($query = NULL, $isSubQuery = FALSE)
34 34
 	{
35
-		if($query)
35
+		if ($query)
36 36
 		{
37 37
 			$this->queryTag = new QueryTag($query, $isSubQuery);
38 38
 		}
@@ -54,17 +54,17 @@  discard block
 block discarded – undo
54 54
 		$module = '';
55 55
 
56 56
 		$id_args = explode('.', $query_id);
57
-		if(count($id_args) == 2)
57
+		if (count($id_args) == 2)
58 58
 		{
59 59
 			$target = 'modules';
60 60
 			$module = $id_args[0];
61 61
 			$id = $id_args[1];
62 62
 		}
63
-		else if(count($id_args) == 3)
63
+		else if (count($id_args) == 3)
64 64
 		{
65 65
 			$target = $id_args[0];
66 66
 			$targetList = array('modules' => 1, 'addons' => 1, 'widgets' => 1);
67
-			if(!isset($targetList[$target]))
67
+			if (!isset($targetList[$target]))
68 68
 			{
69 69
 				return;
70 70
 			}
@@ -74,33 +74,33 @@  discard block
 block discarded – undo
74 74
 
75 75
 		// get column properties from the table
76 76
 		$table_file = sprintf('%s%s/%s/schemas/%s.xml', _XE_PATH_, 'modules', $module, $table_name);
77
-		if(!file_exists($table_file))
77
+		if (!file_exists($table_file))
78 78
 		{
79
-			$searched_list = FileHandler::readDir(_XE_PATH_ . 'modules');
79
+			$searched_list = FileHandler::readDir(_XE_PATH_.'modules');
80 80
 			$searched_count = count($searched_list);
81
-			for($i = 0; $i < $searched_count; $i++)
81
+			for ($i = 0; $i < $searched_count; $i++)
82 82
 			{
83 83
 				$table_file = sprintf('%s%s/%s/schemas/%s.xml', _XE_PATH_, 'modules', $searched_list[$i], $table_name);
84
-				if(file_exists($table_file))
84
+				if (file_exists($table_file))
85 85
 				{
86 86
 					break;
87 87
 				}
88 88
 			}
89 89
 		}
90 90
 
91
-		if(file_exists($table_file))
91
+		if (file_exists($table_file))
92 92
 		{
93 93
 			$table_xml = FileHandler::readFile($table_file);
94 94
 			$xml_parser = new XmlParser();
95 95
 			$table_obj = $xml_parser->parse($table_xml);
96
-			if($table_obj->table)
96
+			if ($table_obj->table)
97 97
 			{
98
-				if(isset($table_obj->table->column) && !is_array($table_obj->table->column))
98
+				if (isset($table_obj->table->column) && !is_array($table_obj->table->column))
99 99
 				{
100 100
 					$table_obj->table->column = array($table_obj->table->column);
101 101
 				}
102 102
 
103
-				foreach($table_obj->table->column as $k => $v)
103
+				foreach ($table_obj->table->column as $k => $v)
104 104
 				{
105 105
 					$column_type[$v->attrs->name] = $v->attrs->type;
106 106
 				}
Please login to merge, or discard this patch.
classes/xml/xmlquery/tags/query/QueryTag.class.php 3 patches
Doc Comments   +3 added lines patch added patch discarded remove patch
@@ -169,6 +169,9 @@
 block discarded – undo
169 169
 		return $this->query->attrs->action;
170 170
 	}
171 171
 
172
+	/**
173
+	 * @param TablesTag $tables
174
+	 */
172 175
 	function setTableColumnTypes($tables)
173 176
 	{
174 177
 		$query_id = $this->getQueryId();
Please login to merge, or discard this patch.
Braces   +6 added lines, -12 removed lines patch added patch discarded remove patch
@@ -195,16 +195,13 @@  discard block
 block discarded – undo
195 195
 		if($this->action == 'select')
196 196
 		{
197 197
 			return $this->columns = new SelectColumnsTag($this->query->columns);
198
-		}
199
-		else if($this->action == 'insert' || $this->action == 'insert-select')
198
+		} else if($this->action == 'insert' || $this->action == 'insert-select')
200 199
 		{
201 200
 			return $this->columns = new InsertColumnsTag($this->query->columns->column);
202
-		}
203
-		else if($this->action == 'update')
201
+		} else if($this->action == 'update')
204 202
 		{
205 203
 			return $this->columns = new UpdateColumnsTag($this->query->columns->column);
206
-		}
207
-		else if($this->action == 'delete')
204
+		} else if($this->action == 'delete')
208 205
 		{
209 206
 			return $this->columns = null;
210 207
 		}
@@ -237,8 +234,7 @@  discard block
 block discarded – undo
237 234
 						{
238 235
 							$column_type = $this->column_type[$this->getQueryId()][$table_alias][$argument->getColumnName()];
239 236
 						}
240
-					}
241
-					else
237
+					} else
242 238
 					{
243 239
 						$current_tables = $this->column_type[$this->getQueryId()];
244 240
 						$column_name = $argument->getColumnName();
@@ -316,8 +312,7 @@  discard block
 block discarded – undo
316 312
 		if($this->query->index_hint && ($this->query->index_hint->attrs->for == 'ALL' || Context::getDBType() == strtolower($this->query->index_hint->attrs->for)))
317 313
 		{
318 314
 			return $this->tables = new TablesTag($this->query->tables, $this->query->index_hint);
319
-		}
320
-		else
315
+		} else
321 316
 		{
322 317
 			return $this->tables = new TablesTag($this->query->tables);
323 318
 		}
@@ -341,8 +336,7 @@  discard block
 block discarded – undo
341 336
 		if($this->query->groups)
342 337
 		{
343 338
 			return $this->groups = new GroupsTag($this->query->groups->group);
344
-		}
345
-		else
339
+		} else
346 340
 		{
347 341
 			return $this->groups = new GroupsTag(NULL);
348 342
 		}
Please login to merge, or discard this patch.
Spacing   +43 added lines, -43 removed lines patch added patch discarded remove patch
@@ -126,11 +126,11 @@  discard block
 block discarded – undo
126 126
 		$this->priority = $query->attrs->priority;
127 127
 		$this->query = $query;
128 128
 		$this->isSubQuery = $isSubQuery;
129
-		if($this->isSubQuery)
129
+		if ($this->isSubQuery)
130 130
 		{
131 131
 			$this->action = 'select';
132 132
 		}
133
-		if($query->attrs->alias)
133
+		if ($query->attrs->alias)
134 134
 		{
135 135
 			$dbParser = DB::getParser();
136 136
 			$this->alias = $dbParser->escape($query->attrs->alias);
@@ -172,13 +172,13 @@  discard block
 block discarded – undo
172 172
 	function setTableColumnTypes($tables)
173 173
 	{
174 174
 		$query_id = $this->getQueryId();
175
-		if(!isset($this->column_type[$query_id]))
175
+		if (!isset($this->column_type[$query_id]))
176 176
 		{
177 177
 			$table_tags = $tables->getTables();
178 178
 			$column_type = array();
179
-			foreach($table_tags as $table_tag)
179
+			foreach ($table_tags as $table_tag)
180 180
 			{
181
-				if(is_a($table_tag, 'TableTag'))
181
+				if (is_a($table_tag, 'TableTag'))
182 182
 				{
183 183
 					$table_name = $table_tag->getTableName();
184 184
 					$table_alias = $table_tag->getTableAlias();
@@ -192,19 +192,19 @@  discard block
 block discarded – undo
192 192
 
193 193
 	function getColumns()
194 194
 	{
195
-		if($this->action == 'select')
195
+		if ($this->action == 'select')
196 196
 		{
197 197
 			return $this->columns = new SelectColumnsTag($this->query->columns);
198 198
 		}
199
-		else if($this->action == 'insert' || $this->action == 'insert-select')
199
+		else if ($this->action == 'insert' || $this->action == 'insert-select')
200 200
 		{
201 201
 			return $this->columns = new InsertColumnsTag($this->query->columns->column);
202 202
 		}
203
-		else if($this->action == 'update')
203
+		else if ($this->action == 'update')
204 204
 		{
205 205
 			return $this->columns = new UpdateColumnsTag($this->query->columns->column);
206 206
 		}
207
-		else if($this->action == 'delete')
207
+		else if ($this->action == 'delete')
208 208
 		{
209 209
 			return $this->columns = null;
210 210
 		}
@@ -212,7 +212,7 @@  discard block
 block discarded – undo
212 212
 
213 213
 	function getPrebuff()
214 214
 	{
215
-		if($this->isSubQuery)
215
+		if ($this->isSubQuery)
216 216
 		{
217 217
 			return;
218 218
 		}
@@ -220,20 +220,20 @@  discard block
 block discarded – undo
220 220
 		$arguments = $this->getArguments();
221 221
 
222 222
 		$prebuff = '';
223
-		foreach($arguments as $argument)
223
+		foreach ($arguments as $argument)
224 224
 		{
225
-			if(isset($argument))
225
+			if (isset($argument))
226 226
 			{
227 227
 				$arg_name = $argument->getArgumentName();
228
-				if($arg_name)
228
+				if ($arg_name)
229 229
 				{
230 230
 					unset($column_type);
231 231
 					$prebuff .= $argument->toString();
232 232
 
233 233
 					$table_alias = $argument->getTableName();
234
-					if(isset($table_alias))
234
+					if (isset($table_alias))
235 235
 					{
236
-						if(isset($this->column_type[$this->getQueryId()][$table_alias][$argument->getColumnName()]))
236
+						if (isset($this->column_type[$this->getQueryId()][$table_alias][$argument->getColumnName()]))
237 237
 						{
238 238
 							$column_type = $this->column_type[$this->getQueryId()][$table_alias][$argument->getColumnName()];
239 239
 						}
@@ -242,18 +242,18 @@  discard block
 block discarded – undo
242 242
 					{
243 243
 						$current_tables = $this->column_type[$this->getQueryId()];
244 244
 						$column_name = $argument->getColumnName();
245
-						foreach($current_tables as $current_table)
245
+						foreach ($current_tables as $current_table)
246 246
 						{
247
-							if(isset($current_table[$column_name]))
247
+							if (isset($current_table[$column_name]))
248 248
 							{
249 249
 								$column_type = $current_table[$column_name];
250 250
 							}
251 251
 						}
252 252
 					}
253 253
 
254
-					if(isset($column_type))
254
+					if (isset($column_type))
255 255
 					{
256
-						$prebuff .= sprintf('if(${\'%s_argument\'} !== null) ${\'%s_argument\'}->setColumnType(\'%s\');' . "\n"
256
+						$prebuff .= sprintf('if(${\'%s_argument\'} !== null) ${\'%s_argument\'}->setColumnType(\'%s\');'."\n"
257 257
 								, $arg_name
258 258
 								, $arg_name
259 259
 								, $column_type);
@@ -269,43 +269,43 @@  discard block
 block discarded – undo
269 269
 	function getBuff()
270 270
 	{
271 271
 		$buff = '';
272
-		if($this->isSubQuery)
272
+		if ($this->isSubQuery)
273 273
 		{
274 274
 			$buff = 'new Subquery(';
275
-			$buff .= "'" . $this->alias . '\', ';
276
-			$buff .= ($this->columns ? $this->columns->toString() : 'null' ) . ', ' . PHP_EOL;
277
-			$buff .= $this->tables->toString() . ',' . PHP_EOL;
278
-			$buff .= $this->conditions->toString() . ',' . PHP_EOL;
279
-			$buff .= $this->groups->toString() . ',' . PHP_EOL;
280
-			$buff .= $this->navigation->getOrderByString() . ',' . PHP_EOL;
275
+			$buff .= "'".$this->alias.'\', ';
276
+			$buff .= ($this->columns ? $this->columns->toString() : 'null').', '.PHP_EOL;
277
+			$buff .= $this->tables->toString().','.PHP_EOL;
278
+			$buff .= $this->conditions->toString().','.PHP_EOL;
279
+			$buff .= $this->groups->toString().','.PHP_EOL;
280
+			$buff .= $this->navigation->getOrderByString().','.PHP_EOL;
281 281
 			$limit = $this->navigation->getLimitString();
282
-			$buff .= $limit ? $limit : 'null' . PHP_EOL;
283
-			$buff .= $this->join_type ? "'" . $this->join_type . "'" : '';
282
+			$buff .= $limit ? $limit : 'null'.PHP_EOL;
283
+			$buff .= $this->join_type ? "'".$this->join_type."'" : '';
284 284
 			$buff .= ')';
285 285
 
286 286
 			$this->buff = $buff;
287 287
 			return $this->buff;
288 288
 		}
289 289
 
290
-		$buff .= '$query = new Query();' . PHP_EOL;
290
+		$buff .= '$query = new Query();'.PHP_EOL;
291 291
 		$buff .= sprintf('$query->setQueryId("%s");%s', $this->query_id, "\n");
292 292
 		$buff .= sprintf('$query->setAction("%s");%s', $this->action, "\n");
293 293
 		$buff .= sprintf('$query->setPriority("%s");%s', $this->priority, "\n");
294 294
 		$buff .= $this->preBuff;
295
-		if($this->columns)
295
+		if ($this->columns)
296 296
 		{
297
-			$buff .= '$query->setColumns(' . $this->columns->toString() . ');' . PHP_EOL;
297
+			$buff .= '$query->setColumns('.$this->columns->toString().');'.PHP_EOL;
298 298
 		}
299 299
 
300
-		$buff .= '$query->setTables(' . $this->tables->toString() . ');' . PHP_EOL;
301
-		if($this->action == 'insert-select')
300
+		$buff .= '$query->setTables('.$this->tables->toString().');'.PHP_EOL;
301
+		if ($this->action == 'insert-select')
302 302
 		{
303
-			$buff .= '$query->setSubquery(' . $this->subquery->toString() . ');' . PHP_EOL;
303
+			$buff .= '$query->setSubquery('.$this->subquery->toString().');'.PHP_EOL;
304 304
 		}
305
-		$buff .= '$query->setConditions(' . $this->conditions->toString() . ');' . PHP_EOL;
306
-		$buff .= '$query->setGroups(' . $this->groups->toString() . ');' . PHP_EOL;
307
-		$buff .= '$query->setOrder(' . $this->navigation->getOrderByString() . ');' . PHP_EOL;
308
-		$buff .= '$query->setLimit(' . $this->navigation->getLimitString() . ');' . PHP_EOL;
305
+		$buff .= '$query->setConditions('.$this->conditions->toString().');'.PHP_EOL;
306
+		$buff .= '$query->setGroups('.$this->groups->toString().');'.PHP_EOL;
307
+		$buff .= '$query->setOrder('.$this->navigation->getOrderByString().');'.PHP_EOL;
308
+		$buff .= '$query->setLimit('.$this->navigation->getLimitString().');'.PHP_EOL;
309 309
 
310 310
 		$this->buff = $buff;
311 311
 		return $this->buff;
@@ -313,7 +313,7 @@  discard block
 block discarded – undo
313 313
 
314 314
 	function getTables()
315 315
 	{
316
-		if($this->query->index_hint && ($this->query->index_hint->attrs->for == 'ALL' || Context::getDBType() == strtolower($this->query->index_hint->attrs->for)))
316
+		if ($this->query->index_hint && ($this->query->index_hint->attrs->for == 'ALL' || Context::getDBType() == strtolower($this->query->index_hint->attrs->for)))
317 317
 		{
318 318
 			return $this->tables = new TablesTag($this->query->tables, $this->query->index_hint);
319 319
 		}
@@ -325,7 +325,7 @@  discard block
 block discarded – undo
325 325
 
326 326
 	function getSubquery()
327 327
 	{
328
-		if($this->query->query)
328
+		if ($this->query->query)
329 329
 		{
330 330
 			$this->subquery = new QueryTag($this->query->query, true);
331 331
 		}
@@ -338,7 +338,7 @@  discard block
 block discarded – undo
338 338
 
339 339
 	function getGroups()
340 340
 	{
341
-		if($this->query->groups)
341
+		if ($this->query->groups)
342 342
 		{
343 343
 			return $this->groups = new GroupsTag($this->query->groups->group);
344 344
 		}
@@ -376,11 +376,11 @@  discard block
 block discarded – undo
376 376
 	function getArguments()
377 377
 	{
378 378
 		$arguments = array();
379
-		if($this->columns)
379
+		if ($this->columns)
380 380
 		{
381 381
 			$arguments = array_merge($arguments, $this->columns->getArguments());
382 382
 		}
383
-		if($this->action == 'insert-select')
383
+		if ($this->action == 'insert-select')
384 384
 		{
385 385
 			$arguments = array_merge($arguments, $this->subquery->getArguments());
386 386
 		}
Please login to merge, or discard this patch.
classes/xml/XmlQueryParser.class.php 2 patches
Doc Comments   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -79,9 +79,9 @@
 block discarded – undo
79 79
 	/**
80 80
 	 * Override for parent "parse" method
81 81
 	 *
82
-	 * @param null $query_id
83
-	 * @param null $xml_file
84
-	 * @param null $cache_file
82
+	 * @param string $query_id
83
+	 * @param string $xml_file
84
+	 * @param string $cache_file
85 85
 	 *
86 86
 	 * @return void
87 87
 	 */
Please login to merge, or discard this patch.
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -4,7 +4,7 @@  discard block
 block discarded – undo
4 4
 /**
5 5
  * File containing the XE 1.5 XmlQueryParserClass
6 6
  */
7
-if(!defined('__XE_LOADED_XML_CLASS__'))
7
+if (!defined('__XE_LOADED_XML_CLASS__'))
8 8
 {
9 9
 	define('__XE_LOADED_XML_CLASS__', 1);
10 10
 }
@@ -37,7 +37,7 @@  discard block
 block discarded – undo
37 37
 	function &getInstance()
38 38
 	{
39 39
 		static $theInstance = NULL;
40
-		if(!isset($theInstance))
40
+		if (!isset($theInstance))
41 41
 		{
42 42
 			$theInstance = new XmlQueryParser();
43 43
 		}
@@ -64,7 +64,7 @@  discard block
 block discarded – undo
64 64
 
65 65
 		// insert, update, delete, select action
66 66
 		$action = strtolower($xml_obj->query->attrs->action);
67
-		if(!$action)
67
+		if (!$action)
68 68
 		{
69 69
 			return;
70 70
 		}
@@ -101,7 +101,7 @@  discard block
 block discarded – undo
101 101
 	{
102 102
 		$buff = FileHandler::readFile($xml_file);
103 103
 		$xml_obj = parent::parse($buff);
104
-		if(!$xml_obj)
104
+		if (!$xml_obj)
105 105
 		{
106 106
 			return;
107 107
 		}
Please login to merge, or discard this patch.
config/func.inc.php 3 patches
Doc Comments   +19 added lines, -16 removed lines patch added patch discarded remove patch
@@ -74,7 +74,7 @@  discard block
 block discarded – undo
74 74
  * @param string $module_name The module name to get a instance
75 75
  * @param string $type disp, proc, controller, class
76 76
  * @param string $kind admin, null
77
- * @return mixed Module instance
77
+ * @return ModuleObject Module instance
78 78
  */
79 79
 function getModule($module_name, $type = 'view', $kind = '')
80 80
 {
@@ -85,7 +85,7 @@  discard block
 block discarded – undo
85 85
  * Create a controller instance of the module
86 86
  *
87 87
  * @param string $module_name The module name to get a controller instance
88
- * @return mixed Module controller instance
88
+ * @return ModuleObject Module controller instance
89 89
  */
90 90
 function getController($module_name)
91 91
 {
@@ -96,7 +96,7 @@  discard block
 block discarded – undo
96 96
  * Create a admin controller instance of the module
97 97
  *
98 98
  * @param string $module_name The module name to get a admin controller instance
99
- * @return mixed Module admin controller instance
99
+ * @return ModuleObject Module admin controller instance
100 100
  */
101 101
 function getAdminController($module_name)
102 102
 {
@@ -107,7 +107,7 @@  discard block
 block discarded – undo
107 107
  * Create a view instance of the module
108 108
  *
109 109
  * @param string $module_name The module name to get a view instance
110
- * @return mixed Module view instance
110
+ * @return ModuleObject Module view instance
111 111
  */
112 112
 function getView($module_name)
113 113
 {
@@ -118,7 +118,7 @@  discard block
 block discarded – undo
118 118
  * Create a mobile instance of the module
119 119
  *
120 120
  * @param string $module_name The module name to get a mobile instance
121
- * @return mixed Module mobile instance
121
+ * @return ModuleObject Module mobile instance
122 122
  */
123 123
 function &getMobile($module_name)
124 124
 {
@@ -129,7 +129,7 @@  discard block
 block discarded – undo
129 129
  * Create a admin view instance of the module
130 130
  *
131 131
  * @param string $module_name The module name to get a admin view instance
132
- * @return mixed Module admin view instance
132
+ * @return ModuleObject Module admin view instance
133 133
  */
134 134
 function getAdminView($module_name)
135 135
 {
@@ -140,7 +140,7 @@  discard block
 block discarded – undo
140 140
  * Create a model instance of the module
141 141
  *
142 142
  * @param string $module_name The module name to get a model instance
143
- * @return mixed Module model instance
143
+ * @return ModuleObject Module model instance
144 144
  */
145 145
 function getModel($module_name)
146 146
 {
@@ -151,7 +151,7 @@  discard block
 block discarded – undo
151 151
  * Create an admin model instance of the module
152 152
  *
153 153
  * @param string $module_name The module name to get a admin model instance
154
- * @return mixed Module admin model instance
154
+ * @return ModuleObject Module admin model instance
155 155
  */
156 156
 function getAdminModel($module_name)
157 157
 {
@@ -162,7 +162,7 @@  discard block
 block discarded – undo
162 162
  * Create an api instance of the module
163 163
  *
164 164
  * @param string $module_name The module name to get a api instance
165
- * @return mixed Module api class instance
165
+ * @return ModuleObject Module api class instance
166 166
  */
167 167
 function getAPI($module_name)
168 168
 {
@@ -173,7 +173,7 @@  discard block
 block discarded – undo
173 173
  * Create a wap instance of the module
174 174
  *
175 175
  * @param string $module_name The module name to get a wap instance
176
- * @return mixed Module wap class instance
176
+ * @return ModuleObject Module wap class instance
177 177
  */
178 178
 function getWAP($module_name)
179 179
 {
@@ -184,7 +184,7 @@  discard block
 block discarded – undo
184 184
  * Create a class instance of the module
185 185
  *
186 186
  * @param string $module_name The module name to get a class instance
187
- * @return mixed Module class instance
187
+ * @return ModuleObject Module class instance
188 188
  */
189 189
 function getClass($module_name)
190 190
 {
@@ -487,7 +487,7 @@  discard block
 block discarded – undo
487 487
  * Return if domain of the virtual site is url type or id type
488 488
  *
489 489
  * @param string $domain
490
- * @return bool
490
+ * @return integer
491 491
  */
492 492
 function isSiteID($domain)
493 493
 {
@@ -556,7 +556,7 @@  discard block
 block discarded – undo
556 556
 /**
557 557
  * Get a time gap between server's timezone and XE's timezone
558 558
  *
559
- * @return int
559
+ * @return double
560 560
  */
561 561
 function zgap()
562 562
 {
@@ -597,7 +597,7 @@  discard block
 block discarded – undo
597 597
  * YYYYMMDDHHIISS format changed to unix time value
598 598
  *
599 599
  * @param string $str Time value in format of YYYYMMDDHHIISS
600
- * @return int
600
+ * @return null|double
601 601
  */
602 602
 function ztime($str)
603 603
 {
@@ -790,7 +790,7 @@  discard block
 block discarded – undo
790 790
  * Display $buff contents into the file ./files/_debug_message.php.
791 791
  * You can see the file on your prompt by command: tail-f./files/_debug_message.php
792 792
  *
793
- * @param mixed $debug_output Target object to be printed
793
+ * @param string $debug_output Target object to be printed
794 794
  * @param bool $display_option boolean Flag whether to print seperator (default:true)
795 795
  * @param string $file Target file name
796 796
  * @return void
@@ -884,7 +884,7 @@  discard block
 block discarded – undo
884 884
 /**
885 885
  * @param string $type query, trigger
886 886
  * @param float $elapsed_time
887
- * @param object $obj
887
+ * @param stdClass $obj
888 888
  */
889 889
 function writeSlowlog($type, $elapsed_time, $obj)
890 890
 {
@@ -1631,6 +1631,9 @@  discard block
 block discarded – undo
1631 1631
 	}
1632 1632
 }
1633 1633
 
1634
+/**
1635
+ * @param string $key
1636
+ */
1634 1637
 function changeValueInUrl($key, $requestKey, $dbKey, $urlName = 'success_return_url')
1635 1638
 {
1636 1639
 	if($requestKey != $dbKey)
Please login to merge, or discard this patch.
Braces   +53 added lines, -67 removed lines patch added patch discarded remove patch
@@ -296,10 +296,11 @@  discard block
 block discarded – undo
296 296
 	$num_args = func_num_args();
297 297
 	$args_list = func_get_args();
298 298
 
299
-	if($num_args)
300
-		$url = Context::getUrl($num_args, $args_list);
301
-	else
302
-		$url = Context::getRequestUri();
299
+	if($num_args) {
300
+			$url = Context::getUrl($num_args, $args_list);
301
+	} else {
302
+			$url = Context::getRequestUri();
303
+	}
303 304
 
304 305
 	return preg_replace('@\berror_return_url=[^&]*|\w+=(?:&|$)@', '', $url);
305 306
 }
@@ -318,8 +319,7 @@  discard block
 block discarded – undo
318 319
 	if($num_args)
319 320
 	{
320 321
 		$url = Context::getUrl($num_args, $args_list, NULL, FALSE);
321
-	}
322
-	else
322
+	} else
323 323
 	{
324 324
 		$url = Context::getRequestUri();
325 325
 	}
@@ -341,8 +341,7 @@  discard block
 block discarded – undo
341 341
 	if($num_args)
342 342
 	{
343 343
 		$url = Context::getUrl($num_args, $args_list, NULL, TRUE, TRUE);
344
-	}
345
-	else
344
+	} else
346 345
 	{
347 346
 		$url = Context::getRequestUri();
348 347
 	}
@@ -531,13 +530,11 @@  discard block
 block discarded – undo
531 530
 		{
532 531
 			$char_width += (int) $chars[$c - 32];
533 532
 			$idx++;
534
-		}
535
-		else if(191 < $c && $c < 224)
533
+		} else if(191 < $c && $c < 224)
536 534
 		{
537 535
 			$char_width += $chars[4];
538 536
 			$idx += 2;
539
-		}
540
-		else
537
+		} else
541 538
 		{
542 539
 			$char_width += $chars[0];
543 540
 			$idx += 3;
@@ -564,8 +561,7 @@  discard block
 block discarded – undo
564 561
 	if($time_zone < 0)
565 562
 	{
566 563
 		$to = -1;
567
-	}
568
-	else
564
+	} else
569 565
 	{
570 566
 		$to = 1;
571 567
 	}
@@ -577,8 +573,7 @@  discard block
 block discarded – undo
577 573
 	if($server_time_zone < 0)
578 574
 	{
579 575
 		$so = -1;
580
-	}
581
-	else
576
+	} else
582 577
 	{
583 578
 		$so = 1;
584 579
 	}
@@ -615,8 +610,7 @@  discard block
 block discarded – undo
615 610
 	if(strlen($str) <= 8)
616 611
 	{
617 612
 		$gap = 0;
618
-	}
619
-	else
613
+	} else
620 614
 	{
621 615
 		$gap = zgap();
622 616
 	}
@@ -639,20 +633,16 @@  discard block
 block discarded – undo
639 633
 	if($gap < 60)
640 634
 	{
641 635
 		$buff = sprintf($lang_time_gap['min'], (int) ($gap / 60) + 1);
642
-	}
643
-	elseif($gap < 60 * 60)
636
+	} elseif($gap < 60 * 60)
644 637
 	{
645 638
 		$buff = sprintf($lang_time_gap['mins'], (int) ($gap / 60) + 1);
646
-	}
647
-	elseif($gap < 60 * 60 * 2)
639
+	} elseif($gap < 60 * 60 * 2)
648 640
 	{
649 641
 		$buff = sprintf($lang_time_gap['hour'], (int) ($gap / 60 / 60) + 1);
650
-	}
651
-	elseif($gap < 60 * 60 * 24)
642
+	} elseif($gap < 60 * 60 * 24)
652 643
 	{
653 644
 		$buff = sprintf($lang_time_gap['hours'], (int) ($gap / 60 / 60) + 1);
654
-	}
655
-	else
645
+	} else
656 646
 	{
657 647
 		$buff = zdate($date, $format);
658 648
 	}
@@ -699,12 +689,10 @@  discard block
 block discarded – undo
699 689
 				if($format == 'Y-m-d')
700 690
 				{
701 691
 					$format = 'M d, Y';
702
-				}
703
-				elseif($format == 'Y-m-d H:i:s')
692
+				} elseif($format == 'Y-m-d H:i:s')
704 693
 				{
705 694
 					$format = 'M d, Y H:i:s';
706
-				}
707
-				elseif($format == 'Y-m-d H:i')
695
+				} elseif($format == 'Y-m-d H:i')
708 696
 				{
709 697
 					$format = 'M d, Y H:i';
710 698
 				}
@@ -713,12 +701,10 @@  discard block
 block discarded – undo
713 701
 				if($format == 'Y-m-d')
714 702
 				{
715 703
 					$format = 'd-m-Y';
716
-				}
717
-				elseif($format == 'Y-m-d H:i:s')
704
+				} elseif($format == 'Y-m-d H:i:s')
718 705
 				{
719 706
 					$format = 'H:i:s d-m-Y';
720
-				}
721
-				elseif($format == 'Y-m-d H:i')
707
+				} elseif($format == 'Y-m-d H:i')
722 708
 				{
723 709
 					$format = 'H:i d-m-Y';
724 710
 				}
@@ -754,8 +740,7 @@  discard block
 block discarded – undo
754 740
 		);
755 741
 
756 742
 		$string = strtr($format, $trans);
757
-	}
758
-	else
743
+	} else
759 744
 	{
760 745
 		// if year value is greater than 1970, get unixtime by using ztime() for date() function's argument. 
761 746
 		$string = date($format, ztime($str));
@@ -842,8 +827,7 @@  discard block
 block discarded – undo
842 827
 		}
843 828
 
844 829
 		$firephp->fb($debug_output, $label, $type);
845
-	}
846
-	else
830
+	} else
847 831
 	{
848 832
 		if(__DEBUG_PROTECT__ === 1 && __DEBUG_PROTECT_IP__ != $_SERVER['REMOTE_ADDR'])
849 833
 		{
@@ -855,7 +839,9 @@  discard block
 block discarded – undo
855 839
 		{
856 840
 			$debug_file = _XE_PATH_ . 'files/' . $file;
857 841
 		}
858
-		if(!file_exists($debug_file)) $print[] = '<?php exit() ?>';
842
+		if(!file_exists($debug_file)) {
843
+			$print[] = '<?php exit() ?>';
844
+		}
859 845
 
860 846
 		if($display_option === TRUE || $display_option === 'ERROR')
861 847
 		{
@@ -868,13 +854,11 @@  discard block
 block discarded – undo
868 854
 			if($display_option === 'ERROR')
869 855
 			{
870 856
 				$print[] = 'ERROR : ' . var_export($debug_output, TRUE);
871
-			}
872
-			else
857
+			} else
873 858
 			{
874 859
 				$print[] = 'DEBUG : ' . $type . '(' . var_export($debug_output, TRUE) . ')';
875 860
 			}
876
-		}
877
-		else
861
+		} else
878 862
 		{
879 863
 			$print[] = 'DEBUG : ' . trim(preg_replace('/\r?\n/', "\n" . '        ', print_r($debug_output, true)));
880 864
 		}
@@ -901,7 +885,9 @@  discard block
 block discarded – undo
901 885
  */
902 886
 function writeSlowlog($type, $elapsed_time, $obj)
903 887
 {
904
-	if(!__LOG_SLOW_TRIGGER__ && !__LOG_SLOW_ADDON__ && !__LOG_SLOW_WIDGET__ && !__LOG_SLOW_QUERY__) return;
888
+	if(!__LOG_SLOW_TRIGGER__ && !__LOG_SLOW_ADDON__ && !__LOG_SLOW_WIDGET__ && !__LOG_SLOW_QUERY__) {
889
+		return;
890
+	}
905 891
 
906 892
 	static $log_filename = array(
907 893
 		'query' => 'files/_slowlog_query.php',
@@ -921,25 +907,21 @@  discard block
 block discarded – undo
921 907
 	{
922 908
 		$buff[] = "\tCaller : " . $obj->caller;
923 909
 		$buff[] = "\tCalled : " . $obj->called;
924
-	}
925
-	else if($type == 'addon' && __LOG_SLOW_ADDON__ > 0 && $elapsed_time > __LOG_SLOW_ADDON__)
910
+	} else if($type == 'addon' && __LOG_SLOW_ADDON__ > 0 && $elapsed_time > __LOG_SLOW_ADDON__)
926 911
 	{
927 912
 		$buff[] = "\tAddon : " . $obj->called;
928 913
 		$buff[] = "\tCalled position : " . $obj->caller;
929
-	}
930
-	else if($type == 'widget' && __LOG_SLOW_WIDGET__ > 0 && $elapsed_time > __LOG_SLOW_WIDGET__)
914
+	} else if($type == 'widget' && __LOG_SLOW_WIDGET__ > 0 && $elapsed_time > __LOG_SLOW_WIDGET__)
931 915
 	{
932 916
 		$buff[] = "\tWidget : " . $obj->called;
933
-	}
934
-	else if($type == 'query' && __LOG_SLOW_QUERY__ > 0 && $elapsed_time > __LOG_SLOW_QUERY__)
917
+	} else if($type == 'query' && __LOG_SLOW_QUERY__ > 0 && $elapsed_time > __LOG_SLOW_QUERY__)
935 918
 	{
936 919
 
937 920
 		$buff[] = $obj->query;
938 921
 		$buff[] = "\tQuery ID   : " . $obj->query_id;
939 922
 		$buff[] = "\tCaller     : " . $obj->caller;
940 923
 		$buff[] = "\tConnection : " . $obj->connection;
941
-	}
942
-	else
924
+	} else
943 925
 	{
944 926
 		$write_file = false;
945 927
 	}
@@ -1031,8 +1013,11 @@  discard block
 block discarded – undo
1031 1013
 
1032 1014
 	foreach($del_vars as $var)
1033 1015
 	{
1034
-		if(is_array($vars)) unset($vars[$var]);
1035
-		else if(is_object($vars)) unset($vars->$var);
1016
+		if(is_array($vars)) {
1017
+			unset($vars[$var]);
1018
+		} else if(is_object($vars)) {
1019
+			unset($vars->$var);
1020
+		}
1036 1021
 	}
1037 1022
 
1038 1023
 	return $vars;
@@ -1169,8 +1154,7 @@  discard block
 block discarded – undo
1169 1154
 		if(($close_xmp = strrpos($content, '</xmp>')) === FALSE)
1170 1155
 		{
1171 1156
 			$content .= '</xmp>';
1172
-		}
1173
-		else if($close_xmp < $start_xmp)
1157
+		} else if($close_xmp < $start_xmp)
1174 1158
 		{
1175 1159
 			$content .= '</xmp>';
1176 1160
 		}
@@ -1227,12 +1211,18 @@  discard block
 block discarded – undo
1227 1211
 
1228 1212
 	$filter_arrts = array('style', 'src', 'href');
1229 1213
 
1230
-	if($tag === 'object') array_push($filter_arrts, 'data');
1231
-	if($tag === 'param') array_push($filter_arrts, 'value');
1214
+	if($tag === 'object') {
1215
+		array_push($filter_arrts, 'data');
1216
+	}
1217
+	if($tag === 'param') {
1218
+		array_push($filter_arrts, 'value');
1219
+	}
1232 1220
 
1233 1221
 	foreach($filter_arrts as $attr)
1234 1222
 	{
1235
-		if(!isset($attrs[$attr])) continue;
1223
+		if(!isset($attrs[$attr])) {
1224
+			continue;
1225
+		}
1236 1226
 
1237 1227
 		$attr_value = rawurldecode($attrs[$attr]);
1238 1228
 		$attr_value = htmlspecialchars_decode($attr_value, ENT_COMPAT);
@@ -1395,16 +1385,14 @@  discard block
 block discarded – undo
1395 1385
 				$unicode = hexdec($unicodeHexVal);
1396 1386
 				$decodedStr .= _code2utf($unicode);
1397 1387
 				$pos += 4;
1398
-			}
1399
-			else
1388
+			} else
1400 1389
 			{
1401 1390
 				// we have an escaped ascii character
1402 1391
 				$hexVal = substr($source, $pos, 2);
1403 1392
 				$decodedStr .= chr(hexdec($hexVal));
1404 1393
 				$pos += 2;
1405 1394
 			}
1406
-		}
1407
-		else
1395
+		} else
1408 1396
 		{
1409 1397
 			$decodedStr .= $charAt;
1410 1398
 			$pos++;
@@ -1596,8 +1584,7 @@  discard block
 block discarded – undo
1596 1584
 	if(version_compare(PHP_VERSION, "5.3.0") < 0)
1597 1585
 	{
1598 1586
 		set_include_path(_XE_PATH_ . "libs/PEAR" . PATH_SEPARATOR . get_include_path());
1599
-	}
1600
-	else
1587
+	} else
1601 1588
 	{
1602 1589
 		set_include_path(_XE_PATH_ . "libs/PEAR.1.9.5" . PATH_SEPARATOR . get_include_path());
1603 1590
 	}
@@ -1634,8 +1621,7 @@  discard block
 block discarded – undo
1634 1621
 		{
1635 1622
 			return FALSE;
1636 1623
 		}
1637
-	}
1638
-	else
1624
+	} else
1639 1625
 	{
1640 1626
 		$virtualSiteInfo = $oModuleModel->getSiteInfo($siteModuleInfo->site_srl);
1641 1627
 		if(strtolower($virtualSiteInfo->domain) != strtolower(Context::get('vid')) && !strstr(strtolower($virtualSiteInfo->domain), strtolower($referer['host'])))
Please login to merge, or discard this patch.
Spacing   +182 added lines, -182 removed lines patch added patch discarded remove patch
@@ -6,13 +6,13 @@  discard block
 block discarded – undo
6 6
  *
7 7
  * @author NAVER ([email protected])
8 8
  */
9
-if(!defined('__XE__'))
9
+if (!defined('__XE__'))
10 10
 {
11 11
 	exit();
12 12
 }
13 13
 
14 14
 // define an empty function to avoid errors when iconv function doesn't exist
15
-if(!function_exists('iconv'))
15
+if (!function_exists('iconv'))
16 16
 {
17 17
 	eval('
18 18
 		function iconv($in_charset, $out_charset, $str)
@@ -220,7 +220,7 @@  discard block
 block discarded – undo
220 220
 {
221 221
 	$oDB = DB::getInstance();
222 222
 	$output = $oDB->executeQuery($query_id, $args, $arg_columns);
223
-	if(!is_array($output->data) && count($output->data) > 0)
223
+	if (!is_array($output->data) && count($output->data) > 0)
224 224
 	{
225 225
 		$output->data = array($output->data);
226 226
 	}
@@ -250,7 +250,7 @@  discard block
 block discarded – undo
250 250
 function setUserSequence($seq)
251 251
 {
252 252
 	$arr_seq = array();
253
-	if(isset($_SESSION['seq']))
253
+	if (isset($_SESSION['seq']))
254 254
 	{
255 255
 		$arr_seq = $_SESSION['seq'];
256 256
 	}
@@ -266,11 +266,11 @@  discard block
 block discarded – undo
266 266
  */
267 267
 function checkUserSequence($seq)
268 268
 {
269
-	if(!isset($_SESSION['seq']))
269
+	if (!isset($_SESSION['seq']))
270 270
 	{
271 271
 		return false;
272 272
 	}
273
-	if(!in_array($seq, $_SESSION['seq']))
273
+	if (!in_array($seq, $_SESSION['seq']))
274 274
 	{
275 275
 		return false;
276 276
 	}
@@ -296,7 +296,7 @@  discard block
 block discarded – undo
296 296
 	$num_args = func_num_args();
297 297
 	$args_list = func_get_args();
298 298
 
299
-	if($num_args)
299
+	if ($num_args)
300 300
 		$url = Context::getUrl($num_args, $args_list);
301 301
 	else
302 302
 		$url = Context::getRequestUri();
@@ -315,7 +315,7 @@  discard block
 block discarded – undo
315 315
 	$num_args = func_num_args();
316 316
 	$args_list = func_get_args();
317 317
 
318
-	if($num_args)
318
+	if ($num_args)
319 319
 	{
320 320
 		$url = Context::getUrl($num_args, $args_list, NULL, FALSE);
321 321
 	}
@@ -338,7 +338,7 @@  discard block
 block discarded – undo
338 338
 	$num_args = func_num_args();
339 339
 	$args_list = func_get_args();
340 340
 
341
-	if($num_args)
341
+	if ($num_args)
342 342
 	{
343 343
 		$url = Context::getUrl($num_args, $args_list, NULL, TRUE, TRUE);
344 344
 	}
@@ -360,16 +360,16 @@  discard block
 block discarded – undo
360 360
 	$num_args = func_num_args();
361 361
 	$args_list = func_get_args();
362 362
 	$request_uri = Context::getRequestUri();
363
-	if(!$num_args)
363
+	if (!$num_args)
364 364
 	{
365 365
 		return $request_uri;
366 366
 	}
367 367
 
368 368
 	$url = Context::getUrl($num_args, $args_list);
369
-	if(strncasecmp('http', $url, 4) !== 0)
369
+	if (strncasecmp('http', $url, 4) !== 0)
370 370
 	{
371 371
 		preg_match('/^(http|https):\/\/([^\/]+)\//', $request_uri, $match);
372
-		return substr($match[0], 0, -1) . $url;
372
+		return substr($match[0], 0, -1).$url;
373 373
 	}
374 374
 	return $url;
375 375
 }
@@ -384,17 +384,17 @@  discard block
 block discarded – undo
384 384
 	$num_args = func_num_args();
385 385
 	$args_list = func_get_args();
386 386
 	$request_uri = Context::getRequestUri();
387
-	if(!$num_args)
387
+	if (!$num_args)
388 388
 	{
389 389
 		return $request_uri;
390 390
 	}
391 391
 
392 392
 	$url = Context::getUrl($num_args, $args_list, NULL, FALSE);
393
-	if(strncasecmp('http', $url, 4) !== 0)
393
+	if (strncasecmp('http', $url, 4) !== 0)
394 394
 	{
395 395
 		preg_match('/^(http|https):\/\/([^\/]+)\//', $request_uri, $match);
396 396
 		$url = Context::getUrl($num_args, $args_list, NULL, FALSE);
397
-		return substr($match[0], 0, -1) . $url;
397
+		return substr($match[0], 0, -1).$url;
398 398
 	}
399 399
 	return $url;
400 400
 }
@@ -410,7 +410,7 @@  discard block
 block discarded – undo
410 410
 	$num_args = func_num_args();
411 411
 	$args_list = func_get_args();
412 412
 
413
-	if(!$num_args)
413
+	if (!$num_args)
414 414
 	{
415 415
 		return Context::getRequestUri();
416 416
 	}
@@ -432,7 +432,7 @@  discard block
 block discarded – undo
432 432
 	$num_args = func_num_args();
433 433
 	$args_list = func_get_args();
434 434
 
435
-	if(!$num_args)
435
+	if (!$num_args)
436 436
 	{
437 437
 		return Context::getRequestUri();
438 438
 	}
@@ -454,7 +454,7 @@  discard block
 block discarded – undo
454 454
 	$args_list = func_get_args();
455 455
 
456 456
 	$request_uri = Context::getRequestUri();
457
-	if(!$num_args)
457
+	if (!$num_args)
458 458
 	{
459 459
 		return $request_uri;
460 460
 	}
@@ -463,10 +463,10 @@  discard block
 block discarded – undo
463 463
 	$num_args = count($args_list);
464 464
 
465 465
 	$url = Context::getUrl($num_args, $args_list, $domain);
466
-	if(strncasecmp('http', $url, 4) !== 0)
466
+	if (strncasecmp('http', $url, 4) !== 0)
467 467
 	{
468 468
 		preg_match('/^(http|https):\/\/([^\/]+)\//', $request_uri, $match);
469
-		return substr($match[0], 0, -1) . $url;
469
+		return substr($match[0], 0, -1).$url;
470 470
 	}
471 471
 	return $url;
472 472
 }
@@ -479,7 +479,7 @@  discard block
 block discarded – undo
479 479
 function getCurrentPageUrl()
480 480
 {
481 481
 	$protocol = $_SERVER['HTTPS'] == 'on' ? 'https://' : 'http://';
482
-	$url = $protocol . $_SERVER['HTTP_HOST'] . preg_replace('/[<>"]/', '', $_SERVER['REQUEST_URI']);
482
+	$url = $protocol.$_SERVER['HTTP_HOST'].preg_replace('/[<>"]/', '', $_SERVER['REQUEST_URI']);
483 483
 	return htmlspecialchars($url, ENT_COMPAT, 'UTF-8', FALSE);
484 484
 }
485 485
 
@@ -504,12 +504,12 @@  discard block
 block discarded – undo
504 504
  */
505 505
 function cut_str($string, $cut_size = 0, $tail = '...')
506 506
 {
507
-	if($cut_size < 1 || !$string)
507
+	if ($cut_size < 1 || !$string)
508 508
 	{
509 509
 		return $string;
510 510
 	}
511 511
 
512
-	if($GLOBALS['use_mb_strimwidth'] || function_exists('mb_strimwidth'))
512
+	if ($GLOBALS['use_mb_strimwidth'] || function_exists('mb_strimwidth'))
513 513
 	{
514 514
 		$GLOBALS['use_mb_strimwidth'] = TRUE;
515 515
 		return mb_strimwidth($string, 0, $cut_size + 4, $tail, 'utf-8');
@@ -523,16 +523,16 @@  discard block
 block discarded – undo
523 523
 	$char_count = 0;
524 524
 
525 525
 	$idx = 0;
526
-	while($idx < $string_length && $char_count < $cut_size && $char_width <= $max_width)
526
+	while ($idx < $string_length && $char_count < $cut_size && $char_width <= $max_width)
527 527
 	{
528 528
 		$c = ord(substr($string, $idx, 1));
529 529
 		$char_count++;
530
-		if($c < 128)
530
+		if ($c < 128)
531 531
 		{
532 532
 			$char_width += (int) $chars[$c - 32];
533 533
 			$idx++;
534 534
 		}
535
-		else if(191 < $c && $c < 224)
535
+		else if (191 < $c && $c < 224)
536 536
 		{
537 537
 			$char_width += $chars[4];
538 538
 			$idx += 2;
@@ -545,7 +545,7 @@  discard block
 block discarded – undo
545 545
 	}
546 546
 
547 547
 	$output = substr($string, 0, $idx);
548
-	if(strlen($output) < $string_length)
548
+	if (strlen($output) < $string_length)
549 549
 	{
550 550
 		$output .= $tail;
551 551
 	}
@@ -561,7 +561,7 @@  discard block
 block discarded – undo
561 561
 function zgap()
562 562
 {
563 563
 	$time_zone = $GLOBALS['_time_zone'];
564
-	if($time_zone < 0)
564
+	if ($time_zone < 0)
565 565
 	{
566 566
 		$to = -1;
567 567
 	}
@@ -574,7 +574,7 @@  discard block
 block discarded – undo
574 574
 	$t_min = substr($time_zone, 3, 2) * $to;
575 575
 
576 576
 	$server_time_zone = date("O");
577
-	if($server_time_zone < 0)
577
+	if ($server_time_zone < 0)
578 578
 	{
579 579
 		$so = -1;
580 580
 	}
@@ -601,7 +601,7 @@  discard block
 block discarded – undo
601 601
  */
602 602
 function ztime($str)
603 603
 {
604
-	if(!$str)
604
+	if (!$str)
605 605
 	{
606 606
 		return;
607 607
 	}
@@ -612,7 +612,7 @@  discard block
 block discarded – undo
612 612
 	$year = (int) substr($str, 0, 4);
613 613
 	$month = (int) substr($str, 4, 2);
614 614
 	$day = (int) substr($str, 6, 2);
615
-	if(strlen($str) <= 8)
615
+	if (strlen($str) <= 8)
616 616
 	{
617 617
 		$gap = 0;
618 618
 	}
@@ -636,19 +636,19 @@  discard block
 block discarded – undo
636 636
 	$gap = $_SERVER['REQUEST_TIME'] + zgap() - ztime($date);
637 637
 
638 638
 	$lang_time_gap = Context::getLang('time_gap');
639
-	if($gap < 60)
639
+	if ($gap < 60)
640 640
 	{
641 641
 		$buff = sprintf($lang_time_gap['min'], (int) ($gap / 60) + 1);
642 642
 	}
643
-	elseif($gap < 60 * 60)
643
+	elseif ($gap < 60 * 60)
644 644
 	{
645 645
 		$buff = sprintf($lang_time_gap['mins'], (int) ($gap / 60) + 1);
646 646
 	}
647
-	elseif($gap < 60 * 60 * 2)
647
+	elseif ($gap < 60 * 60 * 2)
648 648
 	{
649 649
 		$buff = sprintf($lang_time_gap['hour'], (int) ($gap / 60 / 60) + 1);
650 650
 	}
651
-	elseif($gap < 60 * 60 * 24)
651
+	elseif ($gap < 60 * 60 * 24)
652 652
 	{
653 653
 		$buff = sprintf($lang_time_gap['hours'], (int) ($gap / 60 / 60) + 1);
654 654
 	}
@@ -685,40 +685,40 @@  discard block
 block discarded – undo
685 685
 function zdate($str, $format = 'Y-m-d H:i:s', $conversion = TRUE)
686 686
 {
687 687
 	// return null if no target time is specified
688
-	if(!$str)
688
+	if (!$str)
689 689
 	{
690 690
 		return;
691 691
 	}
692 692
 	// convert the date format according to the language
693
-	if($conversion == TRUE)
693
+	if ($conversion == TRUE)
694 694
 	{
695
-		switch(Context::getLangType())
695
+		switch (Context::getLangType())
696 696
 		{
697 697
 			case 'en' :
698 698
 			case 'es' :
699
-				if($format == 'Y-m-d')
699
+				if ($format == 'Y-m-d')
700 700
 				{
701 701
 					$format = 'M d, Y';
702 702
 				}
703
-				elseif($format == 'Y-m-d H:i:s')
703
+				elseif ($format == 'Y-m-d H:i:s')
704 704
 				{
705 705
 					$format = 'M d, Y H:i:s';
706 706
 				}
707
-				elseif($format == 'Y-m-d H:i')
707
+				elseif ($format == 'Y-m-d H:i')
708 708
 				{
709 709
 					$format = 'M d, Y H:i';
710 710
 				}
711 711
 				break;
712 712
 			case 'vi' :
713
-				if($format == 'Y-m-d')
713
+				if ($format == 'Y-m-d')
714 714
 				{
715 715
 					$format = 'd-m-Y';
716 716
 				}
717
-				elseif($format == 'Y-m-d H:i:s')
717
+				elseif ($format == 'Y-m-d H:i:s')
718 718
 				{
719 719
 					$format = 'H:i:s d-m-Y';
720 720
 				}
721
-				elseif($format == 'Y-m-d H:i')
721
+				elseif ($format == 'Y-m-d H:i')
722 722
 				{
723 723
 					$format = 'H:i d-m-Y';
724 724
 				}
@@ -727,7 +727,7 @@  discard block
 block discarded – undo
727 727
 	}
728 728
 
729 729
 	// If year value is less than 1970, handle it separately.
730
-	if((int) substr($str, 0, 4) < 1970)
730
+	if ((int) substr($str, 0, 4) < 1970)
731 731
 	{
732 732
 		$hour = (int) substr($str, 8, 2);
733 733
 		$min = (int) substr($str, 10, 2);
@@ -777,9 +777,9 @@  discard block
 block discarded – undo
777 777
 function getEncodeEmailAddress($email)
778 778
 {
779 779
 	$return = '';
780
-	for($i = 0, $c = strlen($email); $i < $c; $i++)
780
+	for ($i = 0, $c = strlen($email); $i < $c; $i++)
781 781
 	{
782
-		$return .= '&#' . (rand(0, 1) == 0 ? ord($email[$i]) : 'X' . dechex(ord($email[$i]))) . ';';
782
+		$return .= '&#'.(rand(0, 1) == 0 ? ord($email[$i]) : 'X'.dechex(ord($email[$i]))).';';
783 783
 	}
784 784
 	return $return;
785 785
 }
@@ -799,25 +799,25 @@  discard block
 block discarded – undo
799 799
 {
800 800
 	static $debug_file;
801 801
 
802
-	if(!(__DEBUG__ & 1))
802
+	if (!(__DEBUG__ & 1))
803 803
 	{
804 804
 		return;
805 805
 	}
806 806
 
807 807
 	static $firephp;
808 808
 	$bt = debug_backtrace();
809
-	if(is_array($bt))
809
+	if (is_array($bt))
810 810
 	{
811 811
 		$bt_debug_print = array_shift($bt);
812 812
 		$bt_called_function = array_shift($bt);
813 813
 	}
814 814
 	$file_name = str_replace(_XE_PATH_, '', $bt_debug_print['file']);
815 815
 	$line_num = $bt_debug_print['line'];
816
-	$function = $bt_called_function['class'] . $bt_called_function['type'] . $bt_called_function['function'];
816
+	$function = $bt_called_function['class'].$bt_called_function['type'].$bt_called_function['function'];
817 817
 
818
-	if(__DEBUG_OUTPUT__ == 2 && version_compare(PHP_VERSION, '6.0.0') === -1)
818
+	if (__DEBUG_OUTPUT__ == 2 && version_compare(PHP_VERSION, '6.0.0') === -1)
819 819
 	{
820
-		if(!isset($firephp))
820
+		if (!isset($firephp))
821 821
 		{
822 822
 			$firephp = FirePHP::getInstance(TRUE);
823 823
 		}
@@ -826,16 +826,16 @@  discard block
 block discarded – undo
826 826
 		$label = sprintf('[%s:%d] %s() (Memory usage: current=%s, peak=%s)', $file_name, $line_num, $function, FileHandler::filesize(memory_get_usage()), FileHandler::filesize(memory_get_peak_usage()));
827 827
 
828 828
 		// Check a FirePHP option
829
-		if($display_option === 'TABLE')
829
+		if ($display_option === 'TABLE')
830 830
 		{
831 831
 			$label = $display_option;
832 832
 		}
833
-		if($display_option === 'ERROR')
833
+		if ($display_option === 'ERROR')
834 834
 		{
835 835
 			$type = $display_option;
836 836
 		}
837 837
 		// Check if the IP specified by __DEBUG_PROTECT__ option is same as the access IP.
838
-		if(__DEBUG_PROTECT__ === 1 && __DEBUG_PROTECT_IP__ != $_SERVER['REMOTE_ADDR'])
838
+		if (__DEBUG_PROTECT__ === 1 && __DEBUG_PROTECT_IP__ != $_SERVER['REMOTE_ADDR'])
839 839
 		{
840 840
 			$debug_output = 'The IP address is not allowed. Change the value of __DEBUG_PROTECT_IP__ into your IP address in config/config.user.inc.php or config/config.inc.php';
841 841
 			$label = NULL;
@@ -845,52 +845,52 @@  discard block
 block discarded – undo
845 845
 	}
846 846
 	else
847 847
 	{
848
-		if(__DEBUG_PROTECT__ === 1 && __DEBUG_PROTECT_IP__ != $_SERVER['REMOTE_ADDR'])
848
+		if (__DEBUG_PROTECT__ === 1 && __DEBUG_PROTECT_IP__ != $_SERVER['REMOTE_ADDR'])
849 849
 		{
850 850
 			return;
851 851
 		}
852 852
 
853 853
 		$print = array();
854
-		if(!$debug_file)
854
+		if (!$debug_file)
855 855
 		{
856
-			$debug_file = _XE_PATH_ . 'files/' . $file;
856
+			$debug_file = _XE_PATH_.'files/'.$file;
857 857
 		}
858
-		if(!file_exists($debug_file)) $print[] = '<?php exit() ?>';
858
+		if (!file_exists($debug_file)) $print[] = '<?php exit() ?>';
859 859
 
860
-		if($display_option === TRUE || $display_option === 'ERROR')
860
+		if ($display_option === TRUE || $display_option === 'ERROR')
861 861
 		{
862
-			$print[] = sprintf("[%s %s:%d] %s() - mem(%s)", date('Y-m-d H:i:s'), $file_name, $line_num, $function, FileHandler::filesize(memory_get_usage()));;
862
+			$print[] = sprintf("[%s %s:%d] %s() - mem(%s)", date('Y-m-d H:i:s'), $file_name, $line_num, $function, FileHandler::filesize(memory_get_usage())); ;
863 863
 			$print[] = str_repeat('=', 80);
864 864
 		}
865 865
 		$type = gettype($debug_output);
866
-		if(!in_array($type, array('array', 'object', 'resource')))
866
+		if (!in_array($type, array('array', 'object', 'resource')))
867 867
 		{
868
-			if($display_option === 'ERROR')
868
+			if ($display_option === 'ERROR')
869 869
 			{
870
-				$print[] = 'ERROR : ' . var_export($debug_output, TRUE);
870
+				$print[] = 'ERROR : '.var_export($debug_output, TRUE);
871 871
 			}
872 872
 			else
873 873
 			{
874
-				$print[] = 'DEBUG : ' . $type . '(' . var_export($debug_output, TRUE) . ')';
874
+				$print[] = 'DEBUG : '.$type.'('.var_export($debug_output, TRUE).')';
875 875
 			}
876 876
 		}
877 877
 		else
878 878
 		{
879
-			$print[] = 'DEBUG : ' . trim(preg_replace('/\r?\n/', "\n" . '        ', print_r($debug_output, true)));
879
+			$print[] = 'DEBUG : '.trim(preg_replace('/\r?\n/', "\n".'        ', print_r($debug_output, true)));
880 880
 		}
881 881
 		$backtrace_args = defined('\DEBUG_BACKTRACE_IGNORE_ARGS') ? \DEBUG_BACKTRACE_IGNORE_ARGS : 0;
882 882
 		$backtrace = debug_backtrace($backtrace_args);
883 883
 
884
-		if(count($backtrace) > 1 && $backtrace[1]['function'] === 'debugPrint' && !$backtrace[1]['class'])
884
+		if (count($backtrace) > 1 && $backtrace[1]['function'] === 'debugPrint' && !$backtrace[1]['class'])
885 885
 		{
886 886
 			array_shift($backtrace);
887 887
 		}
888
-		foreach($backtrace as $val)
888
+		foreach ($backtrace as $val)
889 889
 		{
890
-			$print[] = '        - ' . $val['file'] . ' : ' . $val['line'];
890
+			$print[] = '        - '.$val['file'].' : '.$val['line'];
891 891
 		}
892 892
 		$print[] = PHP_EOL;
893
-		@file_put_contents($debug_file, implode(PHP_EOL, $print), FILE_APPEND|LOCK_EX);
893
+		@file_put_contents($debug_file, implode(PHP_EOL, $print), FILE_APPEND | LOCK_EX);
894 894
 	}
895 895
 }
896 896
 
@@ -901,7 +901,7 @@  discard block
 block discarded – undo
901 901
  */
902 902
 function writeSlowlog($type, $elapsed_time, $obj)
903 903
 {
904
-	if(!__LOG_SLOW_TRIGGER__ && !__LOG_SLOW_ADDON__ && !__LOG_SLOW_WIDGET__ && !__LOG_SLOW_QUERY__) return;
904
+	if (!__LOG_SLOW_TRIGGER__ && !__LOG_SLOW_ADDON__ && !__LOG_SLOW_WIDGET__ && !__LOG_SLOW_QUERY__) return;
905 905
 
906 906
 	static $log_filename = array(
907 907
 		'query' => 'files/_slowlog_query.php',
@@ -911,47 +911,47 @@  discard block
 block discarded – undo
911 911
 	);
912 912
 	$write_file = true;
913 913
 
914
-	$log_file = _XE_PATH_ . $log_filename[$type];
914
+	$log_file = _XE_PATH_.$log_filename[$type];
915 915
 
916 916
 	$buff = array();
917 917
 	$buff[] = '<?php exit(); ?>';
918 918
 	$buff[] = date('c');
919 919
 
920
-	if($type == 'trigger' && __LOG_SLOW_TRIGGER__ > 0 && $elapsed_time > __LOG_SLOW_TRIGGER__)
920
+	if ($type == 'trigger' && __LOG_SLOW_TRIGGER__ > 0 && $elapsed_time > __LOG_SLOW_TRIGGER__)
921 921
 	{
922
-		$buff[] = "\tCaller : " . $obj->caller;
923
-		$buff[] = "\tCalled : " . $obj->called;
922
+		$buff[] = "\tCaller : ".$obj->caller;
923
+		$buff[] = "\tCalled : ".$obj->called;
924 924
 	}
925
-	else if($type == 'addon' && __LOG_SLOW_ADDON__ > 0 && $elapsed_time > __LOG_SLOW_ADDON__)
925
+	else if ($type == 'addon' && __LOG_SLOW_ADDON__ > 0 && $elapsed_time > __LOG_SLOW_ADDON__)
926 926
 	{
927
-		$buff[] = "\tAddon : " . $obj->called;
928
-		$buff[] = "\tCalled position : " . $obj->caller;
927
+		$buff[] = "\tAddon : ".$obj->called;
928
+		$buff[] = "\tCalled position : ".$obj->caller;
929 929
 	}
930
-	else if($type == 'widget' && __LOG_SLOW_WIDGET__ > 0 && $elapsed_time > __LOG_SLOW_WIDGET__)
930
+	else if ($type == 'widget' && __LOG_SLOW_WIDGET__ > 0 && $elapsed_time > __LOG_SLOW_WIDGET__)
931 931
 	{
932
-		$buff[] = "\tWidget : " . $obj->called;
932
+		$buff[] = "\tWidget : ".$obj->called;
933 933
 	}
934
-	else if($type == 'query' && __LOG_SLOW_QUERY__ > 0 && $elapsed_time > __LOG_SLOW_QUERY__)
934
+	else if ($type == 'query' && __LOG_SLOW_QUERY__ > 0 && $elapsed_time > __LOG_SLOW_QUERY__)
935 935
 	{
936 936
 
937 937
 		$buff[] = $obj->query;
938
-		$buff[] = "\tQuery ID   : " . $obj->query_id;
939
-		$buff[] = "\tCaller     : " . $obj->caller;
940
-		$buff[] = "\tConnection : " . $obj->connection;
938
+		$buff[] = "\tQuery ID   : ".$obj->query_id;
939
+		$buff[] = "\tCaller     : ".$obj->caller;
940
+		$buff[] = "\tConnection : ".$obj->connection;
941 941
 	}
942 942
 	else
943 943
 	{
944 944
 		$write_file = false;
945 945
 	}
946 946
 
947
-	if($write_file)
947
+	if ($write_file)
948 948
 	{
949 949
 		$buff[] = sprintf("\t%0.6f sec", $elapsed_time);
950
-		$buff[] = PHP_EOL . PHP_EOL;
950
+		$buff[] = PHP_EOL.PHP_EOL;
951 951
 		file_put_contents($log_file, implode(PHP_EOL, $buff), FILE_APPEND);
952 952
 	}
953 953
 
954
-	if($type != 'query')
954
+	if ($type != 'query')
955 955
 	{
956 956
 		$trigger_args = $obj;
957 957
 		$trigger_args->_log_type = $type;
@@ -991,11 +991,11 @@  discard block
 block discarded – undo
991 991
  */
992 992
 function delObjectVars($target_obj, $del_obj)
993 993
 {
994
-	if(!is_object($target_obj))
994
+	if (!is_object($target_obj))
995 995
 	{
996 996
 		return;
997 997
 	}
998
-	if(!is_object($del_obj))
998
+	if (!is_object($del_obj))
999 999
 	{
1000 1000
 		return;
1001 1001
 	}
@@ -1005,7 +1005,7 @@  discard block
 block discarded – undo
1005 1005
 
1006 1006
 	$target = array_keys($target_vars);
1007 1007
 	$del = array_keys($del_vars);
1008
-	if(!count($target) || !count($del))
1008
+	if (!count($target) || !count($del))
1009 1009
 	{
1010 1010
 		return $target_obj;
1011 1011
 	}
@@ -1013,10 +1013,10 @@  discard block
 block discarded – undo
1013 1013
 	$return_obj = new stdClass();
1014 1014
 
1015 1015
 	$target_count = count($target);
1016
-	for($i = 0; $i < $target_count; $i++)
1016
+	for ($i = 0; $i < $target_count; $i++)
1017 1017
 	{
1018 1018
 		$target_key = $target[$i];
1019
-		if(!in_array($target_key, $del))
1019
+		if (!in_array($target_key, $del))
1020 1020
 		{
1021 1021
 			$return_obj->{$target_key} = $target_obj->{$target_key};
1022 1022
 		}
@@ -1029,10 +1029,10 @@  discard block
 block discarded – undo
1029 1029
 {
1030 1030
 	$del_vars = array('error_return_url', 'success_return_url', 'ruleset', 'xe_validator_id');
1031 1031
 
1032
-	foreach($del_vars as $var)
1032
+	foreach ($del_vars as $var)
1033 1033
 	{
1034
-		if(is_array($vars)) unset($vars[$var]);
1035
-		else if(is_object($vars)) unset($vars->$var);
1034
+		if (is_array($vars)) unset($vars[$var]);
1035
+		else if (is_object($vars)) unset($vars->$var);
1036 1036
 	}
1037 1037
 
1038 1038
 	return $vars;
@@ -1049,12 +1049,12 @@  discard block
 block discarded – undo
1049 1049
  */
1050 1050
 function handleError($errno, $errstr, $file, $line)
1051 1051
 {
1052
-	if(!__DEBUG__)
1052
+	if (!__DEBUG__)
1053 1053
 	{
1054 1054
 		return;
1055 1055
 	}
1056 1056
 	$errors = array(E_USER_ERROR, E_ERROR, E_PARSE);
1057
-	if(!in_array($errno, $errors))
1057
+	if (!in_array($errno, $errors))
1058 1058
 	{
1059 1059
 		return;
1060 1060
 	}
@@ -1074,8 +1074,8 @@  discard block
 block discarded – undo
1074 1074
 function getNumberingPath($no, $size = 3)
1075 1075
 {
1076 1076
 	$mod = pow(10, $size);
1077
-	$output = sprintf('%0' . $size . 'd/', $no % $mod);
1078
-	if($no >= $mod)
1077
+	$output = sprintf('%0'.$size.'d/', $no % $mod);
1078
+	if ($no >= $mod)
1079 1079
 	{
1080 1080
 		$output .= getNumberingPath((int) $no / $mod, $size);
1081 1081
 	}
@@ -1095,7 +1095,7 @@  discard block
 block discarded – undo
1095 1095
 
1096 1096
 function purifierHtml(&$content)
1097 1097
 {
1098
-	require_once(_XE_PATH_ . 'classes/security/Purifier.class.php');
1098
+	require_once(_XE_PATH_.'classes/security/Purifier.class.php');
1099 1099
 	$oPurifier = Purifier::getInstance();
1100 1100
 	$oPurifier->purify($content);
1101 1101
 }
@@ -1108,7 +1108,7 @@  discard block
 block discarded – undo
1108 1108
  */
1109 1109
 function removeHackTag($content)
1110 1110
 {
1111
-	require_once(_XE_PATH_ . 'classes/security/EmbedFilter.class.php');
1111
+	require_once(_XE_PATH_.'classes/security/EmbedFilter.class.php');
1112 1112
 	$oEmbedFilter = EmbedFilter::getInstance();
1113 1113
 	$oEmbedFilter->check($content);
1114 1114
 
@@ -1150,7 +1150,7 @@  discard block
 block discarded – undo
1150 1150
  */
1151 1151
 function checkUploadedFile($file)
1152 1152
 {
1153
-	require_once(_XE_PATH_ . 'classes/security/UploadFileFilter.class.php');
1153
+	require_once(_XE_PATH_.'classes/security/UploadFileFilter.class.php');
1154 1154
 	return UploadFileFilter::check($file);
1155 1155
 }
1156 1156
 
@@ -1164,13 +1164,13 @@  discard block
 block discarded – undo
1164 1164
 {
1165 1165
 	$content = preg_replace('@<(/?)xmp.*?>@i', '<\1xmp>', $content);
1166 1166
 
1167
-	if(($start_xmp = strrpos($content, '<xmp>')) !== FALSE)
1167
+	if (($start_xmp = strrpos($content, '<xmp>')) !== FALSE)
1168 1168
 	{
1169
-		if(($close_xmp = strrpos($content, '</xmp>')) === FALSE)
1169
+		if (($close_xmp = strrpos($content, '</xmp>')) === FALSE)
1170 1170
 		{
1171 1171
 			$content .= '</xmp>';
1172 1172
 		}
1173
-		else if($close_xmp < $start_xmp)
1173
+		else if ($close_xmp < $start_xmp)
1174 1174
 		{
1175 1175
 			$content .= '</xmp>';
1176 1176
 		}
@@ -1190,33 +1190,33 @@  discard block
 block discarded – undo
1190 1190
 	$tag = strtolower($match[2]);
1191 1191
 
1192 1192
 	// xmp tag ?뺣━
1193
-	if($tag == 'xmp')
1193
+	if ($tag == 'xmp')
1194 1194
 	{
1195 1195
 		return "<{$match[1]}xmp>";
1196 1196
 	}
1197
-	if($match[1])
1197
+	if ($match[1])
1198 1198
 	{
1199 1199
 		return $match[0];
1200 1200
 	}
1201
-	if($match[4])
1201
+	if ($match[4])
1202 1202
 	{
1203
-		$match[4] = ' ' . $match[4];
1203
+		$match[4] = ' '.$match[4];
1204 1204
 	}
1205 1205
 
1206 1206
 	$attrs = array();
1207
-	if(preg_match_all('/([\w:-]+)\s*=(?:\s*(["\']))?(?(2)(.*?)\2|([^ ]+))/s', $match[3], $m))
1207
+	if (preg_match_all('/([\w:-]+)\s*=(?:\s*(["\']))?(?(2)(.*?)\2|([^ ]+))/s', $match[3], $m))
1208 1208
 	{
1209
-		foreach($m[1] as $idx => $name)
1209
+		foreach ($m[1] as $idx => $name)
1210 1210
 		{
1211
-			if(strlen($name) >= 2 && substr_compare($name, 'on', 0, 2) === 0)
1211
+			if (strlen($name) >= 2 && substr_compare($name, 'on', 0, 2) === 0)
1212 1212
 			{
1213 1213
 				continue;
1214 1214
 			}
1215 1215
 
1216
-			$val = preg_replace_callback('/&#(?:x([a-fA-F0-9]+)|0*(\d+));/', function($n) {return chr($n[1] ? ('0x00' . $n[1]) : ($n[2] + 0)); }, $m[3][$idx] . $m[4][$idx]);
1216
+			$val = preg_replace_callback('/&#(?:x([a-fA-F0-9]+)|0*(\d+));/', function($n) {return chr($n[1] ? ('0x00'.$n[1]) : ($n[2] + 0)); }, $m[3][$idx].$m[4][$idx]);
1217 1217
 			$val = preg_replace('/^\s+|[\t\n\r]+/', '', $val);
1218 1218
 
1219
-			if(preg_match('/^[a-z]+script:/i', $val))
1219
+			if (preg_match('/^[a-z]+script:/i', $val))
1220 1220
 			{
1221 1221
 				continue;
1222 1222
 			}
@@ -1227,60 +1227,60 @@  discard block
 block discarded – undo
1227 1227
 
1228 1228
 	$filter_arrts = array('style', 'src', 'href');
1229 1229
 
1230
-	if($tag === 'object') array_push($filter_arrts, 'data');
1231
-	if($tag === 'param') array_push($filter_arrts, 'value');
1230
+	if ($tag === 'object') array_push($filter_arrts, 'data');
1231
+	if ($tag === 'param') array_push($filter_arrts, 'value');
1232 1232
 
1233
-	foreach($filter_arrts as $attr)
1233
+	foreach ($filter_arrts as $attr)
1234 1234
 	{
1235
-		if(!isset($attrs[$attr])) continue;
1235
+		if (!isset($attrs[$attr])) continue;
1236 1236
 
1237 1237
 		$attr_value = rawurldecode($attrs[$attr]);
1238 1238
 		$attr_value = htmlspecialchars_decode($attr_value, ENT_COMPAT);
1239 1239
 		$attr_value = preg_replace('/\s+|[\t\n\r]+/', '', $attr_value);
1240
-		if(preg_match('@(\?|&|;)(act=(\w+))@i', $attr_value, $m) && $m[3] !== 'procFileDownload')
1240
+		if (preg_match('@(\?|&|;)(act=(\w+))@i', $attr_value, $m) && $m[3] !== 'procFileDownload')
1241 1241
 		{
1242 1242
 			unset($attrs[$attr]);
1243 1243
 		}
1244 1244
 	}
1245 1245
 
1246
-	if(isset($attrs['style']) && preg_match('@(?:/\*|\*/|\n|:\s*expression\s*\()@i', $attrs['style']))
1246
+	if (isset($attrs['style']) && preg_match('@(?:/\*|\*/|\n|:\s*expression\s*\()@i', $attrs['style']))
1247 1247
 	{
1248 1248
 		unset($attrs['style']);
1249 1249
 	}
1250 1250
 
1251 1251
 	$attr = array();
1252
-	foreach($attrs as $name => $val)
1252
+	foreach ($attrs as $name => $val)
1253 1253
 	{
1254
-		if($tag == 'object' || $tag == 'embed' || $tag == 'a')
1254
+		if ($tag == 'object' || $tag == 'embed' || $tag == 'a')
1255 1255
 		{
1256 1256
 			$attribute = strtolower(trim($name));
1257
-			if($attribute == 'data' || $attribute == 'src' || $attribute == 'href')
1257
+			if ($attribute == 'data' || $attribute == 'src' || $attribute == 'href')
1258 1258
 			{
1259
-				if(stripos($val, 'data:') === 0)
1259
+				if (stripos($val, 'data:') === 0)
1260 1260
 				{
1261 1261
 					continue;
1262 1262
 				}
1263 1263
 			}
1264 1264
 		}
1265 1265
 
1266
-		if($tag == 'img')
1266
+		if ($tag == 'img')
1267 1267
 		{
1268 1268
 			$attribute = strtolower(trim($name));
1269
-			if(stripos($val, 'data:') === 0)
1269
+			if (stripos($val, 'data:') === 0)
1270 1270
 			{
1271 1271
 				continue;
1272 1272
 			}
1273 1273
 		}
1274 1274
 		$val = str_replace('"', '&quot;', $val);
1275
-		$attr[] = $name . "=\"{$val}\"";
1275
+		$attr[] = $name."=\"{$val}\"";
1276 1276
 	}
1277
-	$attr = count($attr) ? ' ' . implode(' ', $attr) : '';
1277
+	$attr = count($attr) ? ' '.implode(' ', $attr) : '';
1278 1278
 
1279 1279
 	return "<{$match[1]}{$tag}{$attr}{$match[4]}>";
1280 1280
 }
1281 1281
 
1282 1282
 // convert hexa value to RGB
1283
-if(!function_exists('hexrgb'))
1283
+if (!function_exists('hexrgb'))
1284 1284
 {
1285 1285
 
1286 1286
 	/**
@@ -1316,9 +1316,9 @@  discard block
 block discarded – undo
1316 1316
 
1317 1317
 	settype($password, "string");
1318 1318
 
1319
-	for($i = 0; $i < strlen($password); $i++)
1319
+	for ($i = 0; $i < strlen($password); $i++)
1320 1320
 	{
1321
-		if($password[$i] == ' ' || $password[$i] == '\t')
1321
+		if ($password[$i] == ' ' || $password[$i] == '\t')
1322 1322
 		{
1323 1323
 			continue;
1324 1324
 		}
@@ -1330,11 +1330,11 @@  discard block
 block discarded – undo
1330 1330
 	$result1 = sprintf("%08lx", $nr & ((1 << 31) - 1));
1331 1331
 	$result2 = sprintf("%08lx", $nr2 & ((1 << 31) - 1));
1332 1332
 
1333
-	if($result1 == '80000000')
1333
+	if ($result1 == '80000000')
1334 1334
 	{
1335 1335
 		$nr += 0x80000000;
1336 1336
 	}
1337
-	if($result2 == '80000000')
1337
+	if ($result2 == '80000000')
1338 1338
 	{
1339 1339
 		$nr2 += 0x80000000;
1340 1340
 	}
@@ -1350,7 +1350,7 @@  discard block
 block discarded – undo
1350 1350
 function getScriptPath()
1351 1351
 {
1352 1352
 	static $url = NULL;
1353
-	if($url == NULL)
1353
+	if ($url == NULL)
1354 1354
 	{
1355 1355
 		$script_path = filter_var($_SERVER['SCRIPT_NAME'], FILTER_SANITIZE_STRING);
1356 1356
 		$url = str_ireplace('/tools/', '/', preg_replace('/index.php.*/i', '', str_replace('\\', '/', $script_path)));
@@ -1381,14 +1381,14 @@  discard block
 block discarded – undo
1381 1381
 	$decodedStr = '';
1382 1382
 	$pos = 0;
1383 1383
 	$len = strlen($source);
1384
-	while($pos < $len)
1384
+	while ($pos < $len)
1385 1385
 	{
1386 1386
 		$charAt = substr($source, $pos, 1);
1387
-		if($charAt == '%')
1387
+		if ($charAt == '%')
1388 1388
 		{
1389 1389
 			$pos++;
1390 1390
 			$charAt = substr($source, $pos, 1);
1391
-			if($charAt == 'u')
1391
+			if ($charAt == 'u')
1392 1392
 			{
1393 1393
 				// we got a unicode character
1394 1394
 				$pos++;
@@ -1422,21 +1422,21 @@  discard block
 block discarded – undo
1422 1422
  */
1423 1423
 function _code2utf($num)
1424 1424
 {
1425
-	if($num < 128)
1425
+	if ($num < 128)
1426 1426
 	{
1427 1427
 		return chr($num);
1428 1428
 	}
1429
-	if($num < 2048)
1429
+	if ($num < 2048)
1430 1430
 	{
1431
-		return chr(($num >> 6) + 192) . chr(($num & 63) + 128);
1431
+		return chr(($num >> 6) + 192).chr(($num & 63) + 128);
1432 1432
 	}
1433
-	if($num < 65536)
1433
+	if ($num < 65536)
1434 1434
 	{
1435
-		return chr(($num >> 12) + 224) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
1435
+		return chr(($num >> 12) + 224).chr((($num >> 6) & 63) + 128).chr(($num & 63) + 128);
1436 1436
 	}
1437
-	if($num < 2097152)
1437
+	if ($num < 2097152)
1438 1438
 	{
1439
-		return chr(($num >> 18) + 240) . chr((($num >> 12) & 63) + 128) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
1439
+		return chr(($num >> 18) + 240).chr((($num >> 12) & 63) + 128).chr((($num >> 6) & 63) + 128).chr(($num & 63) + 128);
1440 1440
 	}
1441 1441
 	return '';
1442 1442
 }
@@ -1451,7 +1451,7 @@  discard block
 block discarded – undo
1451 1451
  */
1452 1452
 function detectUTF8($string, $return_convert = FALSE, $urldecode = TRUE)
1453 1453
 {
1454
-	if($urldecode)
1454
+	if ($urldecode)
1455 1455
 	{
1456 1456
 		$string = urldecode($string);
1457 1457
 	}
@@ -1459,12 +1459,12 @@  discard block
 block discarded – undo
1459 1459
 	$sample = iconv('utf-8', 'utf-8', $string);
1460 1460
 	$is_utf8 = (md5($sample) === md5($string));
1461 1461
 
1462
-	if(!$urldecode)
1462
+	if (!$urldecode)
1463 1463
 	{
1464 1464
 		$string = urldecode($string);
1465 1465
 	}
1466 1466
 
1467
-	if($return_convert)
1467
+	if ($return_convert)
1468 1468
 	{
1469 1469
 		return ($is_utf8) ? $string : iconv('euc-kr', 'utf-8', $string);
1470 1470
 	}
@@ -1480,7 +1480,7 @@  discard block
 block discarded – undo
1480 1480
  */
1481 1481
 function json_encode2($data)
1482 1482
 {
1483
-	switch(gettype($data))
1483
+	switch (gettype($data))
1484 1484
 	{
1485 1485
 		case 'boolean':
1486 1486
 			return $data ? 'true' : 'false';
@@ -1488,15 +1488,15 @@  discard block
 block discarded – undo
1488 1488
 		case 'double':
1489 1489
 			return $data;
1490 1490
 		case 'string':
1491
-			return '"' . strtr($data, array('\\' => '\\\\', '"' => '\\"')) . '"';
1491
+			return '"'.strtr($data, array('\\' => '\\\\', '"' => '\\"')).'"';
1492 1492
 		case 'object':
1493 1493
 			$data = get_object_vars($data);
1494 1494
 		case 'array':
1495 1495
 			$rel = FALSE; // relative array?
1496 1496
 			$key = array_keys($data);
1497
-			foreach($key as $v)
1497
+			foreach ($key as $v)
1498 1498
 			{
1499
-				if(!is_int($v))
1499
+				if (!is_int($v))
1500 1500
 				{
1501 1501
 					$rel = TRUE;
1502 1502
 					break;
@@ -1504,12 +1504,12 @@  discard block
 block discarded – undo
1504 1504
 			}
1505 1505
 
1506 1506
 			$arr = array();
1507
-			foreach($data as $k => $v)
1507
+			foreach ($data as $k => $v)
1508 1508
 			{
1509
-				$arr[] = ($rel ? '"' . strtr($k, array('\\' => '\\\\', '"' => '\\"')) . '":' : '') . json_encode2($v);
1509
+				$arr[] = ($rel ? '"'.strtr($k, array('\\' => '\\\\', '"' => '\\"')).'":' : '').json_encode2($v);
1510 1510
 			}
1511 1511
 
1512
-			return $rel ? '{' . join(',', $arr) . '}' : '[' . join(',', $arr) . ']';
1512
+			return $rel ? '{'.join(',', $arr).'}' : '['.join(',', $arr).']';
1513 1513
 		default:
1514 1514
 			return '""';
1515 1515
 	}
@@ -1523,7 +1523,7 @@  discard block
 block discarded – undo
1523 1523
  */
1524 1524
 function isCrawler($agent = NULL)
1525 1525
 {
1526
-	if(!$agent)
1526
+	if (!$agent)
1527 1527
 	{
1528 1528
 		$agent = $_SERVER['HTTP_USER_AGENT'];
1529 1529
 	}
@@ -1533,9 +1533,9 @@  discard block
 block discarded – undo
1533 1533
 		/*'211.245.21.110-211.245.21.119' mixsh is closed */
1534 1534
 	);
1535 1535
 
1536
-	foreach($check_agent as $str)
1536
+	foreach ($check_agent as $str)
1537 1537
 	{
1538
-		if(stristr($agent, $str) != FALSE)
1538
+		if (stristr($agent, $str) != FALSE)
1539 1539
 		{
1540 1540
 			return TRUE;
1541 1541
 		}
@@ -1553,7 +1553,7 @@  discard block
 block discarded – undo
1553 1553
  */
1554 1554
 function stripEmbedTagForAdmin(&$content, $writer_member_srl)
1555 1555
 {
1556
-	if(!Context::get('is_logged'))
1556
+	if (!Context::get('is_logged'))
1557 1557
 	{
1558 1558
 		return;
1559 1559
 	}
@@ -1561,18 +1561,18 @@  discard block
 block discarded – undo
1561 1561
 	$oModuleModel = getModel('module');
1562 1562
 	$logged_info = Context::get('logged_info');
1563 1563
 
1564
-	if($writer_member_srl != $logged_info->member_srl && ($logged_info->is_admin == "Y" || $oModuleModel->isSiteAdmin($logged_info)))
1564
+	if ($writer_member_srl != $logged_info->member_srl && ($logged_info->is_admin == "Y" || $oModuleModel->isSiteAdmin($logged_info)))
1565 1565
 	{
1566
-		if($writer_member_srl)
1566
+		if ($writer_member_srl)
1567 1567
 		{
1568 1568
 			$oMemberModel = getModel('member');
1569 1569
 			$member_info = $oMemberModel->getMemberInfoByMemberSrl($writer_member_srl);
1570
-			if($member_info->is_admin == "Y")
1570
+			if ($member_info->is_admin == "Y")
1571 1571
 			{
1572 1572
 				return;
1573 1573
 			}
1574 1574
 		}
1575
-		$security_msg = "<div style='border: 1px solid #DDD; background: #FAFAFA; text-align:center; margin: 1em 0;'><p style='margin: 1em;'>" . Context::getLang('security_warning_embed') . "</p></div>";
1575
+		$security_msg = "<div style='border: 1px solid #DDD; background: #FAFAFA; text-align:center; margin: 1em 0;'><p style='margin: 1em;'>".Context::getLang('security_warning_embed')."</p></div>";
1576 1576
 		$content = preg_replace('/<object[^>]+>(.*?<\/object>)?/is', $security_msg, $content);
1577 1577
 		$content = preg_replace('/<embed[^>]+>(\s*<\/embed>)?/is', $security_msg, $content);
1578 1578
 		$content = preg_replace('/<img[^>]+editor_component="multimedia_link"[^>]*>(\s*<\/img>)?/is', $security_msg, $content);
@@ -1589,18 +1589,18 @@  discard block
 block discarded – undo
1589 1589
 function requirePear()
1590 1590
 {
1591 1591
 	static $required = false;
1592
-	if($required)
1592
+	if ($required)
1593 1593
 	{
1594 1594
 		return;
1595 1595
 	}
1596 1596
 
1597
-	if(version_compare(PHP_VERSION, "5.3.0") < 0)
1597
+	if (version_compare(PHP_VERSION, "5.3.0") < 0)
1598 1598
 	{
1599
-		set_include_path(_XE_PATH_ . "libs/PEAR" . PATH_SEPARATOR . get_include_path());
1599
+		set_include_path(_XE_PATH_."libs/PEAR".PATH_SEPARATOR.get_include_path());
1600 1600
 	}
1601 1601
 	else
1602 1602
 	{
1603
-		set_include_path(_XE_PATH_ . "libs/PEAR.1.9.5" . PATH_SEPARATOR . get_include_path());
1603
+		set_include_path(_XE_PATH_."libs/PEAR.1.9.5".PATH_SEPARATOR.get_include_path());
1604 1604
 	}
1605 1605
 
1606 1606
 	$required = true;
@@ -1608,7 +1608,7 @@  discard block
 block discarded – undo
1608 1608
 
1609 1609
 function checkCSRF()
1610 1610
 {
1611
-	if($_SERVER['REQUEST_METHOD'] != 'POST')
1611
+	if ($_SERVER['REQUEST_METHOD'] != 'POST')
1612 1612
 	{
1613 1613
 		return FALSE;
1614 1614
 	}
@@ -1616,9 +1616,9 @@  discard block
 block discarded – undo
1616 1616
 	$default_url = Context::getDefaultUrl();
1617 1617
 	$referer = $_SERVER["HTTP_REFERER"];
1618 1618
 
1619
-	if(strpos($default_url, 'xn--') !== FALSE && strpos($referer, 'xn--') === FALSE)
1619
+	if (strpos($default_url, 'xn--') !== FALSE && strpos($referer, 'xn--') === FALSE)
1620 1620
 	{
1621
-		require_once(_XE_PATH_ . 'libs/idna_convert/idna_convert.class.php');
1621
+		require_once(_XE_PATH_.'libs/idna_convert/idna_convert.class.php');
1622 1622
 		$IDN = new idna_convert(array('idn_version' => 2008));
1623 1623
 		$referer = $IDN->encode($referer);
1624 1624
 	}
@@ -1629,9 +1629,9 @@  discard block
 block discarded – undo
1629 1629
 	$oModuleModel = getModel('module');
1630 1630
 	$siteModuleInfo = $oModuleModel->getDefaultMid();
1631 1631
 
1632
-	if($siteModuleInfo->site_srl == 0)
1632
+	if ($siteModuleInfo->site_srl == 0)
1633 1633
 	{
1634
-		if($default_url['host'] !== $referer['host'])
1634
+		if ($default_url['host'] !== $referer['host'])
1635 1635
 		{
1636 1636
 			return FALSE;
1637 1637
 		}
@@ -1639,7 +1639,7 @@  discard block
 block discarded – undo
1639 1639
 	else
1640 1640
 	{
1641 1641
 		$virtualSiteInfo = $oModuleModel->getSiteInfo($siteModuleInfo->site_srl);
1642
-		if(strtolower($virtualSiteInfo->domain) != strtolower(Context::get('vid')) && !strstr(strtolower($virtualSiteInfo->domain), strtolower($referer['host'])))
1642
+		if (strtolower($virtualSiteInfo->domain) != strtolower(Context::get('vid')) && !strstr(strtolower($virtualSiteInfo->domain), strtolower($referer['host'])))
1643 1643
 		{
1644 1644
 			return FALSE;
1645 1645
 		}
@@ -1655,15 +1655,15 @@  discard block
 block discarded – undo
1655 1655
  */
1656 1656
 function recurciveExposureCheck(&$menu)
1657 1657
 {
1658
-	if(is_array($menu))
1658
+	if (is_array($menu))
1659 1659
 	{
1660
-		foreach($menu AS $key=>$value)
1660
+		foreach ($menu AS $key=>$value)
1661 1661
 		{
1662
-			if(!$value['isShow'])
1662
+			if (!$value['isShow'])
1663 1663
 			{
1664 1664
 				unset($menu[$key]);
1665 1665
 			}
1666
-			if(is_array($value['list']) && count($value['list']) > 0)
1666
+			if (is_array($value['list']) && count($value['list']) > 0)
1667 1667
 			{
1668 1668
 				recurciveExposureCheck($menu[$key]['list']);
1669 1669
 			}
@@ -1673,14 +1673,14 @@  discard block
 block discarded – undo
1673 1673
 
1674 1674
 function changeValueInUrl($key, $requestKey, $dbKey, $urlName = 'success_return_url')
1675 1675
 {
1676
-	if($requestKey != $dbKey)
1676
+	if ($requestKey != $dbKey)
1677 1677
 	{
1678 1678
 		$arrayUrl = parse_url(Context::get('success_return_url'));
1679
-		if($arrayUrl['query'])
1679
+		if ($arrayUrl['query'])
1680 1680
 		{
1681 1681
 			parse_str($arrayUrl['query'], $parsedStr);
1682 1682
 
1683
-			if(isset($parsedStr[$key]))
1683
+			if (isset($parsedStr[$key]))
1684 1684
 			{
1685 1685
 				$parsedStr[$key] = $requestKey;
1686 1686
 				$successReturnUrl .= $arrayUrl['path'].'?'.http_build_query($parsedStr);
@@ -1723,14 +1723,14 @@  discard block
 block discarded – undo
1723 1723
  */
1724 1724
 function alertScript($msg)
1725 1725
 {
1726
-	if(!$msg)
1726
+	if (!$msg)
1727 1727
 	{
1728 1728
 		return;
1729 1729
 	}
1730 1730
 
1731 1731
 	echo '<script type="text/javascript">
1732 1732
 //<![CDATA[
1733
-alert("' . $msg . '");
1733
+alert("' . $msg.'");
1734 1734
 //]]>
1735 1735
 </script>';
1736 1736
 }
@@ -1761,7 +1761,7 @@  discard block
 block discarded – undo
1761 1761
 
1762 1762
 	echo '<script type="text/javascript">
1763 1763
 //<![CDATA[
1764
-' . $reloadScript . '
1764
+' . $reloadScript.'
1765 1765
 //]]>
1766 1766
 </script>';
1767 1767
 }
Please login to merge, or discard this patch.
libs/FirePHPCore/fb.php 3 patches
Doc Comments   +1 added lines, -3 removed lines patch added patch discarded remove patch
@@ -50,7 +50,6 @@  discard block
 block discarded – undo
50 50
  * "Server" request tab.
51 51
  * 
52 52
  * @see http://www.firephp.org/Wiki/Reference/Fb
53
- * @param mixed $Object
54 53
  * @return true
55 54
  * @throws Exception
56 55
  */
@@ -130,7 +129,6 @@  discard block
 block discarded – undo
130 129
    * Log object to firebug
131 130
    * 
132 131
    * @see http://www.firephp.org/Wiki/Reference/Fb
133
-   * @param mixed $Object
134 132
    * @return true
135 133
    * @throws Exception
136 134
    */
@@ -150,7 +148,7 @@  discard block
 block discarded – undo
150 148
    *
151 149
    * @param string $Name
152 150
    * @param array $Options OPTIONAL Instructions on how to log the group
153
-   * @return true
151
+   * @return boolean
154 152
    */
155 153
   public static function group($Name, $Options=null) {
156 154
     $instance = FirePHP::getInstance(true);
Please login to merge, or discard this patch.
Indentation   +23 added lines, -23 removed lines patch added patch discarded remove patch
@@ -73,8 +73,8 @@  discard block
 block discarded – undo
73 73
    * @return void
74 74
    */
75 75
   public static function setEnabled($Enabled) {
76
-    $instance = FirePHP::getInstance(true);
77
-    $instance->setEnabled($Enabled);
76
+	$instance = FirePHP::getInstance(true);
77
+	$instance->setEnabled($Enabled);
78 78
   }
79 79
   
80 80
   /**
@@ -84,8 +84,8 @@  discard block
 block discarded – undo
84 84
    * @return boolean TRUE if enabled
85 85
    */
86 86
   public static function getEnabled() {
87
-    $instance = FirePHP::getInstance(true);
88
-    return $instance->getEnabled();
87
+	$instance = FirePHP::getInstance(true);
88
+	return $instance->getEnabled();
89 89
   }  
90 90
   
91 91
   /**
@@ -99,8 +99,8 @@  discard block
 block discarded – undo
99 99
    * @return void
100 100
    */
101 101
   public static function setObjectFilter($Class, $Filter) {
102
-    $instance = FirePHP::getInstance(true);
103
-    $instance->setObjectFilter($Class, $Filter);
102
+	$instance = FirePHP::getInstance(true);
103
+	$instance->setObjectFilter($Class, $Filter);
104 104
   }
105 105
   
106 106
   /**
@@ -111,8 +111,8 @@  discard block
 block discarded – undo
111 111
    * @return void
112 112
    */
113 113
   public static function setOptions($Options) {
114
-    $instance = FirePHP::getInstance(true);
115
-    $instance->setOptions($Options);
114
+	$instance = FirePHP::getInstance(true);
115
+	$instance->setOptions($Options);
116 116
   }
117 117
 
118 118
   /**
@@ -122,8 +122,8 @@  discard block
 block discarded – undo
122 122
    * @return array The options
123 123
    */
124 124
   public static function getOptions() {
125
-    $instance = FirePHP::getInstance(true);
126
-    return $instance->getOptions();
125
+	$instance = FirePHP::getInstance(true);
126
+	return $instance->getOptions();
127 127
   }
128 128
 
129 129
   /**
@@ -136,9 +136,9 @@  discard block
 block discarded – undo
136 136
    */
137 137
   public static function send()
138 138
   {
139
-    $instance = FirePHP::getInstance(true);
140
-    $args = func_get_args();
141
-    return call_user_func_array(array($instance,'fb'),$args);
139
+	$instance = FirePHP::getInstance(true);
140
+	$args = func_get_args();
141
+	return call_user_func_array(array($instance,'fb'),$args);
142 142
   }
143 143
 
144 144
   /**
@@ -153,8 +153,8 @@  discard block
 block discarded – undo
153 153
    * @return true
154 154
    */
155 155
   public static function group($Name, $Options=null) {
156
-    $instance = FirePHP::getInstance(true);
157
-    return $instance->group($Name, $Options);
156
+	$instance = FirePHP::getInstance(true);
157
+	return $instance->group($Name, $Options);
158 158
   }
159 159
 
160 160
   /**
@@ -164,7 +164,7 @@  discard block
 block discarded – undo
164 164
    * @throws Exception
165 165
    */
166 166
   public static function groupEnd() {
167
-    return self::send(null, null, FirePHP::GROUP_END);
167
+	return self::send(null, null, FirePHP::GROUP_END);
168 168
   }
169 169
 
170 170
   /**
@@ -177,7 +177,7 @@  discard block
 block discarded – undo
177 177
    * @throws Exception
178 178
    */
179 179
   public static function log($Object, $Label=null) {
180
-    return self::send($Object, $Label, FirePHP::LOG);
180
+	return self::send($Object, $Label, FirePHP::LOG);
181 181
   } 
182 182
 
183 183
   /**
@@ -190,7 +190,7 @@  discard block
 block discarded – undo
190 190
    * @throws Exception
191 191
    */
192 192
   public static function info($Object, $Label=null) {
193
-    return self::send($Object, $Label, FirePHP::INFO);
193
+	return self::send($Object, $Label, FirePHP::INFO);
194 194
   } 
195 195
 
196 196
   /**
@@ -203,7 +203,7 @@  discard block
 block discarded – undo
203 203
    * @throws Exception
204 204
    */
205 205
   public static function warn($Object, $Label=null) {
206
-    return self::send($Object, $Label, FirePHP::WARN);
206
+	return self::send($Object, $Label, FirePHP::WARN);
207 207
   } 
208 208
 
209 209
   /**
@@ -216,7 +216,7 @@  discard block
 block discarded – undo
216 216
    * @throws Exception
217 217
    */
218 218
   public static function error($Object, $Label=null) {
219
-    return self::send($Object, $Label, FirePHP::ERROR);
219
+	return self::send($Object, $Label, FirePHP::ERROR);
220 220
   } 
221 221
 
222 222
   /**
@@ -229,7 +229,7 @@  discard block
 block discarded – undo
229 229
    * @throws Exception
230 230
    */
231 231
   public static function dump($Key, $Variable) {
232
-    return self::send($Variable, $Key, FirePHP::DUMP);
232
+	return self::send($Variable, $Key, FirePHP::DUMP);
233 233
   } 
234 234
 
235 235
   /**
@@ -241,7 +241,7 @@  discard block
 block discarded – undo
241 241
    * @throws Exception
242 242
    */
243 243
   public static function trace($Label) {
244
-    return self::send($Label, FirePHP::TRACE);
244
+	return self::send($Label, FirePHP::TRACE);
245 245
   } 
246 246
 
247 247
   /**
@@ -254,7 +254,7 @@  discard block
 block discarded – undo
254 254
    * @throws Exception
255 255
    */
256 256
   public static function table($Label, $Table) {
257
-    return self::send($Table, $Label, FirePHP::TABLE);
257
+	return self::send($Table, $Label, FirePHP::TABLE);
258 258
   } 
259 259
 
260 260
 }
Please login to merge, or discard this patch.
Spacing   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -59,7 +59,7 @@  discard block
 block discarded – undo
59 59
   $instance = FirePHP::getInstance(true);
60 60
   
61 61
   $args = func_get_args();
62
-  return call_user_func_array(array($instance,'fb'),$args);
62
+  return call_user_func_array(array($instance, 'fb'), $args);
63 63
 }
64 64
 
65 65
 
@@ -138,7 +138,7 @@  discard block
 block discarded – undo
138 138
   {
139 139
     $instance = FirePHP::getInstance(true);
140 140
     $args = func_get_args();
141
-    return call_user_func_array(array($instance,'fb'),$args);
141
+    return call_user_func_array(array($instance, 'fb'), $args);
142 142
   }
143 143
 
144 144
   /**
@@ -152,7 +152,7 @@  discard block
 block discarded – undo
152 152
    * @param array $Options OPTIONAL Instructions on how to log the group
153 153
    * @return true
154 154
    */
155
-  public static function group($Name, $Options=null) {
155
+  public static function group($Name, $Options = null) {
156 156
     $instance = FirePHP::getInstance(true);
157 157
     return $instance->group($Name, $Options);
158 158
   }
@@ -176,7 +176,7 @@  discard block
 block discarded – undo
176 176
    * @return true
177 177
    * @throws Exception
178 178
    */
179
-  public static function log($Object, $Label=null) {
179
+  public static function log($Object, $Label = null) {
180 180
     return self::send($Object, $Label, FirePHP::LOG);
181 181
   } 
182 182
 
@@ -189,7 +189,7 @@  discard block
 block discarded – undo
189 189
    * @return true
190 190
    * @throws Exception
191 191
    */
192
-  public static function info($Object, $Label=null) {
192
+  public static function info($Object, $Label = null) {
193 193
     return self::send($Object, $Label, FirePHP::INFO);
194 194
   } 
195 195
 
@@ -202,7 +202,7 @@  discard block
 block discarded – undo
202 202
    * @return true
203 203
    * @throws Exception
204 204
    */
205
-  public static function warn($Object, $Label=null) {
205
+  public static function warn($Object, $Label = null) {
206 206
     return self::send($Object, $Label, FirePHP::WARN);
207 207
   } 
208 208
 
@@ -215,7 +215,7 @@  discard block
 block discarded – undo
215 215
    * @return true
216 216
    * @throws Exception
217 217
    */
218
-  public static function error($Object, $Label=null) {
218
+  public static function error($Object, $Label = null) {
219 219
     return self::send($Object, $Label, FirePHP::ERROR);
220 220
   } 
221 221
 
Please login to merge, or discard this patch.
libs/ftp.class.php 4 patches
Doc Comments   +25 added lines patch added patch discarded remove patch
@@ -177,6 +177,9 @@  discard block
 block discarded – undo
177 177
             return $response;
178 178
         }
179 179
 
180
+        /**
181
+         * @param string $pathname
182
+         */
180 183
         function ftp_delete($pathname)
181 184
         {
182 185
             $this->ftp_putcmd("DELE", $pathname);
@@ -187,6 +190,9 @@  discard block
 block discarded – undo
187 190
             return $response;
188 191
         }
189 192
 
193
+        /**
194
+         * @param string $pathname
195
+         */
190 196
         function ftp_rmdir($pathname)
191 197
         {
192 198
             $this->ftp_putcmd("RMD", $pathname);
@@ -197,6 +203,9 @@  discard block
 block discarded – undo
197 203
             return $response;
198 204
         }
199 205
 
206
+        /**
207
+         * @param string $pathname
208
+         */
200 209
         function ftp_mkdir($pathname)
201 210
         {
202 211
             $this->ftp_putcmd("MKD", $pathname);
@@ -358,6 +367,10 @@  discard block
 block discarded – undo
358 367
             return $response;
359 368
         }
360 369
 
370
+        /**
371
+         * @param string $remotefile
372
+         * @param string $localfile
373
+         */
361 374
         function ftp_put($remotefile, $localfile, $mode = 1)
362 375
         {
363 376
             
@@ -408,6 +421,9 @@  discard block
 block discarded – undo
408 421
             return $response;
409 422
         }
410 423
 
424
+        /**
425
+         * @param string $command
426
+         */
411 427
         function ftp_site($command)
412 428
         {
413 429
             $this->ftp_putcmd("SITE", $command);
@@ -431,6 +447,9 @@  discard block
 block discarded – undo
431 447
 
432 448
         /* Private Functions */
433 449
 
450
+        /**
451
+         * @param integer $mode
452
+         */
434 453
         function ftp_type($mode)
435 454
         {
436 455
             if ($mode) {
@@ -468,6 +487,9 @@  discard block
 block discarded – undo
468 487
             return $ip_port;
469 488
         }
470 489
 
490
+        /**
491
+         * @param string $cmd
492
+         */
471 493
         function ftp_putcmd($cmd, $arg = "")
472 494
         {
473 495
             if ($arg != "") {
@@ -536,6 +558,9 @@  discard block
 block discarded – undo
536 558
             return fclose($sock);
537 559
         }
538 560
 
561
+        /**
562
+         * @param string $ip_port
563
+         */
539 564
         function ftp_open_data_connection($ip_port)
540 565
         {
541 566
             if (!preg_match("@[0-9]{1,3},[0-9]{1,3},[0-9]{1,3},[0-9]{1,3},[0-9]+,[0-9]+@", $ip_port)) {
Please login to merge, or discard this patch.
Indentation   +479 added lines, -479 removed lines patch added patch discarded remove patch
@@ -1,5 +1,5 @@  discard block
 block discarded – undo
1 1
 <?php
2
-    /*********************************************************************
2
+	/*********************************************************************
3 3
      *
4 4
      *    PHP FTP Client Class By TOMO ( [email protected] )
5 5
 	 *    Modified By NAVER ( [email protected] )
@@ -18,7 +18,7 @@  discard block
 block discarded – undo
18 18
      *
19 19
      ********************************************************************/
20 20
 
21
-    /*********************************************************************
21
+	/*********************************************************************
22 22
      * List of available functions
23 23
      * ftp_connect($server, $port = 21)
24 24
      * ftp_login($user, $pass)
@@ -41,448 +41,448 @@  discard block
 block discarded – undo
41 41
      * ftp_quit()
42 42
      *********************************************************************/
43 43
 
44
-    class ftp
45
-    {
46
-        /* Public variables */
47
-        var $debug;
48
-        var $umask;
49
-        var $timeout;
50
-
51
-        /* Private variables */
52
-        var $ftp_sock;
53
-        var $ftp_resp;
54
-
55
-        /* Constractor */
56
-        function ftp()
57
-        {
58
-            $this->debug = false;
59
-            $this->umask = 0022;
60
-            $this->timeout = 30;
61
-
62
-            if (!defined("FTP_BINARY")) {
63
-                define("FTP_BINARY", 1);
64
-            }
65
-            if (!defined("FTP_ASCII")) {
66
-                define("FTP_ASCII", 0);
67
-            }
68
-
69
-            $this->ftp_resp = "";
70
-        }
71
-
72
-        /* Public functions */
73
-        function ftp_connect($server, $port = 21)
74
-        {
75
-            $this->ftp_debug("Trying to ".$server.":".$port." ...\n");
76
-            $this->ftp_sock = @fsockopen($server, $port, $errno, $errstr, $this->timeout);
77
-
78
-            if (!$this->ftp_sock || !$this->ftp_ok()) {
79
-                $this->ftp_debug("Error : Cannot connect to remote host \"".$server.":".$port."\"\n");
80
-                $this->ftp_debug("Error : fsockopen() ".$errstr." (".$errno.")\n");
81
-                return FALSE;
82
-            }
44
+	class ftp
45
+	{
46
+		/* Public variables */
47
+		var $debug;
48
+		var $umask;
49
+		var $timeout;
50
+
51
+		/* Private variables */
52
+		var $ftp_sock;
53
+		var $ftp_resp;
54
+
55
+		/* Constractor */
56
+		function ftp()
57
+		{
58
+			$this->debug = false;
59
+			$this->umask = 0022;
60
+			$this->timeout = 30;
61
+
62
+			if (!defined("FTP_BINARY")) {
63
+				define("FTP_BINARY", 1);
64
+			}
65
+			if (!defined("FTP_ASCII")) {
66
+				define("FTP_ASCII", 0);
67
+			}
68
+
69
+			$this->ftp_resp = "";
70
+		}
71
+
72
+		/* Public functions */
73
+		function ftp_connect($server, $port = 21)
74
+		{
75
+			$this->ftp_debug("Trying to ".$server.":".$port." ...\n");
76
+			$this->ftp_sock = @fsockopen($server, $port, $errno, $errstr, $this->timeout);
77
+
78
+			if (!$this->ftp_sock || !$this->ftp_ok()) {
79
+				$this->ftp_debug("Error : Cannot connect to remote host \"".$server.":".$port."\"\n");
80
+				$this->ftp_debug("Error : fsockopen() ".$errstr." (".$errno.")\n");
81
+				return FALSE;
82
+			}
83 83
 
84 84
 			if(substr($this->ftp_resp, 0, 3) !== '220')
85 85
 			{
86 86
 				return FALSE;
87 87
 			}
88 88
 
89
-            $this->ftp_debug("Connected to remote host \"".$server.":".$port."\"\n");
90
-
91
-            return TRUE;
92
-        }
93
-
94
-        function ftp_login($user, $pass)
95
-        {
96
-            $this->ftp_putcmd("USER", $user);
97
-            if (!$this->ftp_ok()) {
98
-                $this->ftp_debug("Error : USER command failed\n");
99
-                return FALSE;
100
-            }
101
-
102
-            $this->ftp_putcmd("PASS", $pass);
103
-            if (!$this->ftp_ok()) {
104
-                $this->ftp_debug("Error : PASS command failed\n");
105
-                return FALSE;
106
-            }
107
-            $this->ftp_debug("Authentication succeeded\n");
108
-
109
-            return TRUE;
110
-        }
111
-
112
-        function ftp_pwd()
113
-        {
114
-            $this->ftp_putcmd("PWD");
115
-            if (!$this->ftp_ok()) {
116
-                $this->ftp_debug("Error : PWD command failed\n");
117
-                return FALSE;
118
-            }
119
-
120
-            return preg_replace("@^[0-9]{3} \"(.+)\" .+\r\n@", "\\1", $this->ftp_resp);
121
-        }
122
-
123
-        function ftp_size($pathname)
124
-        {
125
-            $this->ftp_putcmd("SIZE", $pathname);
126
-            if (!$this->ftp_ok()) {
127
-                $this->ftp_debug("Error : SIZE command failed\n");
128
-                return -1;
129
-            }
130
-
131
-            return preg_replace("@^[0-9]{3} ([0-9]+)\r\n@", "\\1", $this->ftp_resp);
132
-        }
133
-
134
-        function ftp_mdtm($pathname)
135
-        {
136
-            $this->ftp_putcmd("MDTM", $pathname);
137
-            if (!$this->ftp_ok()) {
138
-                $this->ftp_debug("Error : MDTM command failed\n");
139
-                return -1;
140
-            }
141
-            $mdtm = preg_replace("@^[0-9]{3} ([0-9]+)\r\n@", "\\1", $this->ftp_resp);
142
-            $date = sscanf($mdtm, "%4d%2d%2d%2d%2d%2d");
143
-            $timestamp = mktime($date[3], $date[4], $date[5], $date[1], $date[2], $date[0]);
144
-
145
-            return $timestamp;
146
-        }
147
-
148
-        function ftp_systype()
149
-        {
150
-            $this->ftp_putcmd("SYST");
151
-            if (!$this->ftp_ok()) {
152
-                $this->ftp_debug("Error : SYST command failed\n");
153
-                return FALSE;
154
-            }
155
-            $DATA = explode(" ", $this->ftp_resp);
156
-
157
-            return $DATA[1];
158
-        }
159
-
160
-        function ftp_cdup()
161
-        {
162
-            $this->ftp_putcmd("CDUP");
163
-            $response = $this->ftp_ok();
164
-            if (!$response) {
165
-                $this->ftp_debug("Error : CDUP command failed\n");
166
-            }
167
-            return $response;
168
-        }
169
-
170
-        function ftp_chdir($pathname)
171
-        {
172
-            $this->ftp_putcmd("CWD", $pathname);
173
-            $response = $this->ftp_ok();
174
-            if (!$response) {
175
-                $this->ftp_debug("Error : CWD command failed\n");
176
-            }
177
-            return $response;
178
-        }
179
-
180
-        function ftp_delete($pathname)
181
-        {
182
-            $this->ftp_putcmd("DELE", $pathname);
183
-            $response = $this->ftp_ok();
184
-            if (!$response) {
185
-                $this->ftp_debug("Error : DELE command failed\n");
186
-            }
187
-            return $response;
188
-        }
189
-
190
-        function ftp_rmdir($pathname)
191
-        {
192
-            $this->ftp_putcmd("RMD", $pathname);
193
-            $response = $this->ftp_ok();
194
-            if (!$response) {
195
-                $this->ftp_debug("Error : RMD command failed\n");
196
-            }
197
-            return $response;
198
-        }
199
-
200
-        function ftp_mkdir($pathname)
201
-        {
202
-            $this->ftp_putcmd("MKD", $pathname);
203
-            $response = $this->ftp_ok();
204
-            if (!$response) {
205
-                $this->ftp_debug("Error : MKD command failed\n");
206
-            }
207
-            return $response;
208
-        }
209
-
210
-        function ftp_file_exists($pathname)
211
-        {
212
-            if (!($remote_list = $this->ftp_nlist("-a"))) {
213
-                $this->ftp_debug("Error : Cannot get remote file list\n");
214
-                return -1;
215
-            }
89
+			$this->ftp_debug("Connected to remote host \"".$server.":".$port."\"\n");
90
+
91
+			return TRUE;
92
+		}
93
+
94
+		function ftp_login($user, $pass)
95
+		{
96
+			$this->ftp_putcmd("USER", $user);
97
+			if (!$this->ftp_ok()) {
98
+				$this->ftp_debug("Error : USER command failed\n");
99
+				return FALSE;
100
+			}
101
+
102
+			$this->ftp_putcmd("PASS", $pass);
103
+			if (!$this->ftp_ok()) {
104
+				$this->ftp_debug("Error : PASS command failed\n");
105
+				return FALSE;
106
+			}
107
+			$this->ftp_debug("Authentication succeeded\n");
108
+
109
+			return TRUE;
110
+		}
111
+
112
+		function ftp_pwd()
113
+		{
114
+			$this->ftp_putcmd("PWD");
115
+			if (!$this->ftp_ok()) {
116
+				$this->ftp_debug("Error : PWD command failed\n");
117
+				return FALSE;
118
+			}
119
+
120
+			return preg_replace("@^[0-9]{3} \"(.+)\" .+\r\n@", "\\1", $this->ftp_resp);
121
+		}
122
+
123
+		function ftp_size($pathname)
124
+		{
125
+			$this->ftp_putcmd("SIZE", $pathname);
126
+			if (!$this->ftp_ok()) {
127
+				$this->ftp_debug("Error : SIZE command failed\n");
128
+				return -1;
129
+			}
130
+
131
+			return preg_replace("@^[0-9]{3} ([0-9]+)\r\n@", "\\1", $this->ftp_resp);
132
+		}
133
+
134
+		function ftp_mdtm($pathname)
135
+		{
136
+			$this->ftp_putcmd("MDTM", $pathname);
137
+			if (!$this->ftp_ok()) {
138
+				$this->ftp_debug("Error : MDTM command failed\n");
139
+				return -1;
140
+			}
141
+			$mdtm = preg_replace("@^[0-9]{3} ([0-9]+)\r\n@", "\\1", $this->ftp_resp);
142
+			$date = sscanf($mdtm, "%4d%2d%2d%2d%2d%2d");
143
+			$timestamp = mktime($date[3], $date[4], $date[5], $date[1], $date[2], $date[0]);
144
+
145
+			return $timestamp;
146
+		}
147
+
148
+		function ftp_systype()
149
+		{
150
+			$this->ftp_putcmd("SYST");
151
+			if (!$this->ftp_ok()) {
152
+				$this->ftp_debug("Error : SYST command failed\n");
153
+				return FALSE;
154
+			}
155
+			$DATA = explode(" ", $this->ftp_resp);
156
+
157
+			return $DATA[1];
158
+		}
159
+
160
+		function ftp_cdup()
161
+		{
162
+			$this->ftp_putcmd("CDUP");
163
+			$response = $this->ftp_ok();
164
+			if (!$response) {
165
+				$this->ftp_debug("Error : CDUP command failed\n");
166
+			}
167
+			return $response;
168
+		}
169
+
170
+		function ftp_chdir($pathname)
171
+		{
172
+			$this->ftp_putcmd("CWD", $pathname);
173
+			$response = $this->ftp_ok();
174
+			if (!$response) {
175
+				$this->ftp_debug("Error : CWD command failed\n");
176
+			}
177
+			return $response;
178
+		}
179
+
180
+		function ftp_delete($pathname)
181
+		{
182
+			$this->ftp_putcmd("DELE", $pathname);
183
+			$response = $this->ftp_ok();
184
+			if (!$response) {
185
+				$this->ftp_debug("Error : DELE command failed\n");
186
+			}
187
+			return $response;
188
+		}
189
+
190
+		function ftp_rmdir($pathname)
191
+		{
192
+			$this->ftp_putcmd("RMD", $pathname);
193
+			$response = $this->ftp_ok();
194
+			if (!$response) {
195
+				$this->ftp_debug("Error : RMD command failed\n");
196
+			}
197
+			return $response;
198
+		}
199
+
200
+		function ftp_mkdir($pathname)
201
+		{
202
+			$this->ftp_putcmd("MKD", $pathname);
203
+			$response = $this->ftp_ok();
204
+			if (!$response) {
205
+				$this->ftp_debug("Error : MKD command failed\n");
206
+			}
207
+			return $response;
208
+		}
209
+
210
+		function ftp_file_exists($pathname)
211
+		{
212
+			if (!($remote_list = $this->ftp_nlist("-a"))) {
213
+				$this->ftp_debug("Error : Cannot get remote file list\n");
214
+				return -1;
215
+			}
216 216
             
217
-            reset($remote_list);
218
-            while (list(,$value) = each($remote_list)) {
219
-                if ($value == $pathname) {
220
-                    $this->ftp_debug("Remote file ".$pathname." exists\n");
221
-                    return 1;
222
-                }
223
-            }
224
-            $this->ftp_debug("Remote file ".$pathname." does not exist\n");
225
-
226
-            return 0;
227
-        }
228
-
229
-        function ftp_rename($from, $to)
230
-        {
231
-            $this->ftp_putcmd("RNFR", $from);
232
-            if (!$this->ftp_ok()) {
233
-                $this->ftp_debug("Error : RNFR command failed\n");
234
-                return FALSE;
235
-            }
236
-            $this->ftp_putcmd("RNTO", $to);
237
-
238
-            $response = $this->ftp_ok();
239
-            if (!$response) {
240
-                $this->ftp_debug("Error : RNTO command failed\n");
241
-            }
242
-            return $response;
243
-        }
244
-
245
-        function ftp_nlist($arg = "", $pathname = "")
246
-        {
247
-            if (!($string = $this->ftp_pasv())) {
248
-                return FALSE;
249
-            }
250
-
251
-            if ($arg == "") {
252
-                $nlst = "NLST";
253
-            } else {
254
-                $nlst = "NLST ".$arg;
255
-            }
256
-            $this->ftp_putcmd($nlst, $pathname);
257
-
258
-            $sock_data = $this->ftp_open_data_connection($string);
259
-            if (!$sock_data || !$this->ftp_ok()) {
260
-                $this->ftp_debug("Error : Cannot connect to remote host\n");
261
-                $this->ftp_debug("Error : NLST command failed\n");
262
-                return FALSE;
263
-            }
264
-            $this->ftp_debug("Connected to remote host\n");
217
+			reset($remote_list);
218
+			while (list(,$value) = each($remote_list)) {
219
+				if ($value == $pathname) {
220
+					$this->ftp_debug("Remote file ".$pathname." exists\n");
221
+					return 1;
222
+				}
223
+			}
224
+			$this->ftp_debug("Remote file ".$pathname." does not exist\n");
225
+
226
+			return 0;
227
+		}
228
+
229
+		function ftp_rename($from, $to)
230
+		{
231
+			$this->ftp_putcmd("RNFR", $from);
232
+			if (!$this->ftp_ok()) {
233
+				$this->ftp_debug("Error : RNFR command failed\n");
234
+				return FALSE;
235
+			}
236
+			$this->ftp_putcmd("RNTO", $to);
237
+
238
+			$response = $this->ftp_ok();
239
+			if (!$response) {
240
+				$this->ftp_debug("Error : RNTO command failed\n");
241
+			}
242
+			return $response;
243
+		}
244
+
245
+		function ftp_nlist($arg = "", $pathname = "")
246
+		{
247
+			if (!($string = $this->ftp_pasv())) {
248
+				return FALSE;
249
+			}
250
+
251
+			if ($arg == "") {
252
+				$nlst = "NLST";
253
+			} else {
254
+				$nlst = "NLST ".$arg;
255
+			}
256
+			$this->ftp_putcmd($nlst, $pathname);
257
+
258
+			$sock_data = $this->ftp_open_data_connection($string);
259
+			if (!$sock_data || !$this->ftp_ok()) {
260
+				$this->ftp_debug("Error : Cannot connect to remote host\n");
261
+				$this->ftp_debug("Error : NLST command failed\n");
262
+				return FALSE;
263
+			}
264
+			$this->ftp_debug("Connected to remote host\n");
265 265
 
266 266
 			$list = array();
267
-            while (!feof($sock_data)) {
268
-                $list[] = preg_replace("@[\r\n]@", "", fgets($sock_data, 512));
269
-            }
270
-            $this->ftp_close_data_connection($sock_data);
271
-            $this->ftp_debug(implode("\n", $list));
272
-
273
-            if (!$this->ftp_ok()) {
274
-                $this->ftp_debug("Error : NLST command failed\n");
275
-                return FALSE;
276
-            }
277
-
278
-            return $list;
279
-        }
280
-
281
-        function ftp_rawlist($pathname = "")
282
-        {
283
-            if (!($string = $this->ftp_pasv())) {
284
-                return FALSE;
285
-            }
286
-
287
-            $this->ftp_putcmd("LIST", $pathname);
288
-
289
-            $sock_data = $this->ftp_open_data_connection($string);
290
-            if (!$sock_data || !$this->ftp_ok()) {
291
-                $this->ftp_debug("Error : Cannot connect to remote host\n");
292
-                $this->ftp_debug("Error : LIST command failed\n");
293
-                return FALSE;
294
-            }
295
-
296
-            $this->ftp_debug("Connected to remote host\n");
297
-
298
-            while (!feof($sock_data)) {
299
-                $list[] = preg_replace("@[\r\n]@", "", fgets($sock_data, 512));
300
-            }
301
-            $this->ftp_debug(implode("\n", $list));
302
-            $this->ftp_close_data_connection($sock_data);
303
-
304
-            if (!$this->ftp_ok()) {
305
-                $this->ftp_debug("Error : LIST command failed\n");
306
-                return FALSE;
307
-            }
308
-
309
-            return $list;
310
-        }
311
-
312
-        function ftp_get($localfile, $remotefile, $mode = 1)
313
-        {
314
-            umask($this->umask);
315
-
316
-            if (@file_exists($localfile)) {
317
-                $this->ftp_debug("Warning : local file will be overwritten\n");
318
-            }
319
-
320
-            $fp = @fopen($localfile, "w");
321
-            if (!$fp) {
322
-                $this->ftp_debug("Error : Cannot create \"".$localfile."\"");
323
-                $this->ftp_debug("Error : GET command failed\n");
324
-                return FALSE;
325
-            }
326
-
327
-            if (!$this->ftp_type($mode)) {
328
-                $this->ftp_debug("Error : GET command failed\n");
329
-                return FALSE;
330
-            }
331
-
332
-            if (!($string = $this->ftp_pasv())) {
333
-                $this->ftp_debug("Error : GET command failed\n");
334
-                return FALSE;
335
-            }
336
-
337
-            $this->ftp_putcmd("RETR", $remotefile);
338
-
339
-            $sock_data = $this->ftp_open_data_connection($string);
340
-            if (!$sock_data || !$this->ftp_ok()) {
341
-                $this->ftp_debug("Error : Cannot connect to remote host\n");
342
-                $this->ftp_debug("Error : GET command failed\n");
343
-                return FALSE;
344
-            }
345
-            $this->ftp_debug("Connected to remote host\n");
346
-            $this->ftp_debug("Retrieving remote file \"".$remotefile."\" to local file \"".$localfile."\"\n");
347
-            while (!feof($sock_data)) {
348
-                fputs($fp, fread($sock_data, 4096));
349
-            }
350
-            fclose($fp);
351
-
352
-            $this->ftp_close_data_connection($sock_data);
353
-
354
-            $response = $this->ftp_ok();
355
-            if (!$response) {
356
-                $this->ftp_debug("Error : GET command failed\n");
357
-            }
358
-            return $response;
359
-        }
360
-
361
-        function ftp_put($remotefile, $localfile, $mode = 1)
362
-        {
267
+			while (!feof($sock_data)) {
268
+				$list[] = preg_replace("@[\r\n]@", "", fgets($sock_data, 512));
269
+			}
270
+			$this->ftp_close_data_connection($sock_data);
271
+			$this->ftp_debug(implode("\n", $list));
272
+
273
+			if (!$this->ftp_ok()) {
274
+				$this->ftp_debug("Error : NLST command failed\n");
275
+				return FALSE;
276
+			}
277
+
278
+			return $list;
279
+		}
280
+
281
+		function ftp_rawlist($pathname = "")
282
+		{
283
+			if (!($string = $this->ftp_pasv())) {
284
+				return FALSE;
285
+			}
286
+
287
+			$this->ftp_putcmd("LIST", $pathname);
288
+
289
+			$sock_data = $this->ftp_open_data_connection($string);
290
+			if (!$sock_data || !$this->ftp_ok()) {
291
+				$this->ftp_debug("Error : Cannot connect to remote host\n");
292
+				$this->ftp_debug("Error : LIST command failed\n");
293
+				return FALSE;
294
+			}
295
+
296
+			$this->ftp_debug("Connected to remote host\n");
297
+
298
+			while (!feof($sock_data)) {
299
+				$list[] = preg_replace("@[\r\n]@", "", fgets($sock_data, 512));
300
+			}
301
+			$this->ftp_debug(implode("\n", $list));
302
+			$this->ftp_close_data_connection($sock_data);
303
+
304
+			if (!$this->ftp_ok()) {
305
+				$this->ftp_debug("Error : LIST command failed\n");
306
+				return FALSE;
307
+			}
308
+
309
+			return $list;
310
+		}
311
+
312
+		function ftp_get($localfile, $remotefile, $mode = 1)
313
+		{
314
+			umask($this->umask);
315
+
316
+			if (@file_exists($localfile)) {
317
+				$this->ftp_debug("Warning : local file will be overwritten\n");
318
+			}
319
+
320
+			$fp = @fopen($localfile, "w");
321
+			if (!$fp) {
322
+				$this->ftp_debug("Error : Cannot create \"".$localfile."\"");
323
+				$this->ftp_debug("Error : GET command failed\n");
324
+				return FALSE;
325
+			}
326
+
327
+			if (!$this->ftp_type($mode)) {
328
+				$this->ftp_debug("Error : GET command failed\n");
329
+				return FALSE;
330
+			}
331
+
332
+			if (!($string = $this->ftp_pasv())) {
333
+				$this->ftp_debug("Error : GET command failed\n");
334
+				return FALSE;
335
+			}
336
+
337
+			$this->ftp_putcmd("RETR", $remotefile);
338
+
339
+			$sock_data = $this->ftp_open_data_connection($string);
340
+			if (!$sock_data || !$this->ftp_ok()) {
341
+				$this->ftp_debug("Error : Cannot connect to remote host\n");
342
+				$this->ftp_debug("Error : GET command failed\n");
343
+				return FALSE;
344
+			}
345
+			$this->ftp_debug("Connected to remote host\n");
346
+			$this->ftp_debug("Retrieving remote file \"".$remotefile."\" to local file \"".$localfile."\"\n");
347
+			while (!feof($sock_data)) {
348
+				fputs($fp, fread($sock_data, 4096));
349
+			}
350
+			fclose($fp);
351
+
352
+			$this->ftp_close_data_connection($sock_data);
353
+
354
+			$response = $this->ftp_ok();
355
+			if (!$response) {
356
+				$this->ftp_debug("Error : GET command failed\n");
357
+			}
358
+			return $response;
359
+		}
360
+
361
+		function ftp_put($remotefile, $localfile, $mode = 1)
362
+		{
363 363
             
364
-            if (!@file_exists($localfile)) {
365
-                $this->ftp_debug("Error : No such file or directory \"".$localfile."\"\n");
366
-                $this->ftp_debug("Error : PUT command failed\n");
367
-                return FALSE;
368
-            }
369
-
370
-            $fp = @fopen($localfile, "r");
371
-            if (!$fp) {
372
-                $this->ftp_debug("Error : Cannot read file \"".$localfile."\"\n");
373
-                $this->ftp_debug("Error : PUT command failed\n");
374
-                return FALSE;
375
-            }
376
-
377
-            if (!$this->ftp_type($mode)) {
378
-                $this->ftp_debug("Error : PUT command failed\n");
379
-                return FALSE;
380
-            }
381
-
382
-            if (!($string = $this->ftp_pasv())) {
383
-                $this->ftp_debug("Error : PUT command failed\n");
384
-                return FALSE;
385
-            }
386
-
387
-            $this->ftp_putcmd("STOR", $remotefile);
388
-
389
-            $sock_data = $this->ftp_open_data_connection($string);
390
-            if (!$sock_data || !$this->ftp_ok()) {
391
-                $this->ftp_debug("Error : Cannot connect to remote host\n");
392
-                $this->ftp_debug("Error : PUT command failed\n");
393
-                return FALSE;
394
-            }
395
-            $this->ftp_debug("Connected to remote host\n");
396
-            $this->ftp_debug("Storing local file \"".$localfile."\" to remote file \"".$remotefile."\"\n");
397
-            while (!feof($fp)) {
398
-                fputs($sock_data, fread($fp, 4096));
399
-            }
400
-            fclose($fp);
401
-
402
-            $this->ftp_close_data_connection($sock_data);
403
-
404
-            $response = $this->ftp_ok();
405
-            if (!$response) {
406
-                $this->ftp_debug("Error : PUT command failed\n");
407
-            }
408
-            return $response;
409
-        }
410
-
411
-        function ftp_site($command)
412
-        {
413
-            $this->ftp_putcmd("SITE", $command);
414
-            $response = $this->ftp_ok();
415
-            if (!$response) {
416
-                $this->ftp_debug("Error : SITE command failed\n");
417
-            }
418
-            return $response;
419
-        }
420
-
421
-        function ftp_quit()
422
-        {
423
-            $this->ftp_putcmd("QUIT");
424
-            if (!$this->ftp_ok() || !fclose($this->ftp_sock)) {
425
-                $this->ftp_debug("Error : QUIT command failed\n");
426
-                return FALSE;
427
-            }
428
-            $this->ftp_debug("Disconnected from remote host\n");
429
-            return TRUE;
430
-        }
431
-
432
-        /* Private Functions */
433
-
434
-        function ftp_type($mode)
435
-        {
436
-            if ($mode) {
437
-                $type = "I"; //Binary mode
438
-            } else {
439
-                $type = "A"; //ASCII mode
440
-            }
441
-            $this->ftp_putcmd("TYPE", $type);
442
-            $response = $this->ftp_ok();
443
-            if (!$response) {
444
-                $this->ftp_debug("Error : TYPE command failed\n");
445
-            }
446
-            return $response;
447
-        }
448
-
449
-        function ftp_port($ip_port)
450
-        {
451
-            $this->ftp_putcmd("PORT", $ip_port);
452
-            $response = $this->ftp_ok();
453
-            if (!$response) {
454
-                $this->ftp_debug("Error : PORT command failed\n");
455
-            }
456
-            return $response;
457
-        }
458
-
459
-        function ftp_pasv()
460
-        {
461
-            $this->ftp_putcmd("PASV");
462
-            if (!$this->ftp_ok()) {
463
-                $this->ftp_debug("Error : PASV command failed\n");
464
-                return FALSE;
465
-            }
466
-
467
-            $ip_port = preg_replace("@^.+ \\(?([0-9]{1,3},[0-9]{1,3},[0-9]{1,3},[0-9]{1,3},[0-9]+,[0-9]+)\\)?.*\r\n$@", "\\1", $this->ftp_resp);
468
-            return $ip_port;
469
-        }
470
-
471
-        function ftp_putcmd($cmd, $arg = "")
472
-        {
473
-            if ($arg != "") {
474
-                $cmd = $cmd." ".$arg;
475
-            }
476
-
477
-            fputs($this->ftp_sock, $cmd."\r\n");
478
-            $this->ftp_debug("> ".$cmd."\n");
479
-
480
-            return TRUE;
481
-        }
482
-
483
-        function ftp_ok()
484
-        {
485
-            $this->ftp_resp = "";
364
+			if (!@file_exists($localfile)) {
365
+				$this->ftp_debug("Error : No such file or directory \"".$localfile."\"\n");
366
+				$this->ftp_debug("Error : PUT command failed\n");
367
+				return FALSE;
368
+			}
369
+
370
+			$fp = @fopen($localfile, "r");
371
+			if (!$fp) {
372
+				$this->ftp_debug("Error : Cannot read file \"".$localfile."\"\n");
373
+				$this->ftp_debug("Error : PUT command failed\n");
374
+				return FALSE;
375
+			}
376
+
377
+			if (!$this->ftp_type($mode)) {
378
+				$this->ftp_debug("Error : PUT command failed\n");
379
+				return FALSE;
380
+			}
381
+
382
+			if (!($string = $this->ftp_pasv())) {
383
+				$this->ftp_debug("Error : PUT command failed\n");
384
+				return FALSE;
385
+			}
386
+
387
+			$this->ftp_putcmd("STOR", $remotefile);
388
+
389
+			$sock_data = $this->ftp_open_data_connection($string);
390
+			if (!$sock_data || !$this->ftp_ok()) {
391
+				$this->ftp_debug("Error : Cannot connect to remote host\n");
392
+				$this->ftp_debug("Error : PUT command failed\n");
393
+				return FALSE;
394
+			}
395
+			$this->ftp_debug("Connected to remote host\n");
396
+			$this->ftp_debug("Storing local file \"".$localfile."\" to remote file \"".$remotefile."\"\n");
397
+			while (!feof($fp)) {
398
+				fputs($sock_data, fread($fp, 4096));
399
+			}
400
+			fclose($fp);
401
+
402
+			$this->ftp_close_data_connection($sock_data);
403
+
404
+			$response = $this->ftp_ok();
405
+			if (!$response) {
406
+				$this->ftp_debug("Error : PUT command failed\n");
407
+			}
408
+			return $response;
409
+		}
410
+
411
+		function ftp_site($command)
412
+		{
413
+			$this->ftp_putcmd("SITE", $command);
414
+			$response = $this->ftp_ok();
415
+			if (!$response) {
416
+				$this->ftp_debug("Error : SITE command failed\n");
417
+			}
418
+			return $response;
419
+		}
420
+
421
+		function ftp_quit()
422
+		{
423
+			$this->ftp_putcmd("QUIT");
424
+			if (!$this->ftp_ok() || !fclose($this->ftp_sock)) {
425
+				$this->ftp_debug("Error : QUIT command failed\n");
426
+				return FALSE;
427
+			}
428
+			$this->ftp_debug("Disconnected from remote host\n");
429
+			return TRUE;
430
+		}
431
+
432
+		/* Private Functions */
433
+
434
+		function ftp_type($mode)
435
+		{
436
+			if ($mode) {
437
+				$type = "I"; //Binary mode
438
+			} else {
439
+				$type = "A"; //ASCII mode
440
+			}
441
+			$this->ftp_putcmd("TYPE", $type);
442
+			$response = $this->ftp_ok();
443
+			if (!$response) {
444
+				$this->ftp_debug("Error : TYPE command failed\n");
445
+			}
446
+			return $response;
447
+		}
448
+
449
+		function ftp_port($ip_port)
450
+		{
451
+			$this->ftp_putcmd("PORT", $ip_port);
452
+			$response = $this->ftp_ok();
453
+			if (!$response) {
454
+				$this->ftp_debug("Error : PORT command failed\n");
455
+			}
456
+			return $response;
457
+		}
458
+
459
+		function ftp_pasv()
460
+		{
461
+			$this->ftp_putcmd("PASV");
462
+			if (!$this->ftp_ok()) {
463
+				$this->ftp_debug("Error : PASV command failed\n");
464
+				return FALSE;
465
+			}
466
+
467
+			$ip_port = preg_replace("@^.+ \\(?([0-9]{1,3},[0-9]{1,3},[0-9]{1,3},[0-9]{1,3},[0-9]+,[0-9]+)\\)?.*\r\n$@", "\\1", $this->ftp_resp);
468
+			return $ip_port;
469
+		}
470
+
471
+		function ftp_putcmd($cmd, $arg = "")
472
+		{
473
+			if ($arg != "") {
474
+				$cmd = $cmd." ".$arg;
475
+			}
476
+
477
+			fputs($this->ftp_sock, $cmd."\r\n");
478
+			$this->ftp_debug("> ".$cmd."\n");
479
+
480
+			return TRUE;
481
+		}
482
+
483
+		function ftp_ok()
484
+		{
485
+			$this->ftp_resp = "";
486 486
 
487 487
 			// 한줄을 읽는다.
488 488
 			$line = '';
@@ -521,49 +521,49 @@  discard block
 block discarded – undo
521 521
 				}while($line);
522 522
 			}
523 523
 
524
-            $this->ftp_debug(str_replace("\r\n", "\n", $this->ftp_resp));
525
-
526
-            if (!preg_match("@^[123]@", $this->ftp_resp)) {
527
-                return FALSE;
528
-            }
529
-
530
-            return TRUE;
531
-        }
532
-
533
-        function ftp_close_data_connection($sock)
534
-        {
535
-            $this->ftp_debug("Disconnected from remote host\n");
536
-            return fclose($sock);
537
-        }
538
-
539
-        function ftp_open_data_connection($ip_port)
540
-        {
541
-            if (!preg_match("@[0-9]{1,3},[0-9]{1,3},[0-9]{1,3},[0-9]{1,3},[0-9]+,[0-9]+@", $ip_port)) {
542
-                $this->ftp_debug("Error : Illegal ip-port format(".$ip_port.")\n");
543
-                return FALSE;
544
-            }
545
-
546
-            $DATA = explode(",", $ip_port);
547
-            $ipaddr = $DATA[0].".".$DATA[1].".".$DATA[2].".".$DATA[3];
548
-            $port   = $DATA[4]*256 + $DATA[5];
549
-            $this->ftp_debug("Trying to ".$ipaddr.":".$port." ...\n");
550
-            $data_connection = @fsockopen($ipaddr, $port, $errno, $errstr);
551
-            if (!$data_connection) {
552
-                $this->ftp_debug("Error : Cannot open data connection to ".$ipaddr.":".$port."\n");
553
-                $this->ftp_debug("Error : ".$errstr." (".$errno.")\n");
554
-                return FALSE;
555
-            }
556
-
557
-            return $data_connection;
558
-        }
559
-
560
-        function ftp_debug($message = "")
561
-        {
562
-            if ($this->debug) {
563
-                echo $message;
564
-            }
565
-
566
-            return TRUE;
567
-        }
568
-    }
524
+			$this->ftp_debug(str_replace("\r\n", "\n", $this->ftp_resp));
525
+
526
+			if (!preg_match("@^[123]@", $this->ftp_resp)) {
527
+				return FALSE;
528
+			}
529
+
530
+			return TRUE;
531
+		}
532
+
533
+		function ftp_close_data_connection($sock)
534
+		{
535
+			$this->ftp_debug("Disconnected from remote host\n");
536
+			return fclose($sock);
537
+		}
538
+
539
+		function ftp_open_data_connection($ip_port)
540
+		{
541
+			if (!preg_match("@[0-9]{1,3},[0-9]{1,3},[0-9]{1,3},[0-9]{1,3},[0-9]+,[0-9]+@", $ip_port)) {
542
+				$this->ftp_debug("Error : Illegal ip-port format(".$ip_port.")\n");
543
+				return FALSE;
544
+			}
545
+
546
+			$DATA = explode(",", $ip_port);
547
+			$ipaddr = $DATA[0].".".$DATA[1].".".$DATA[2].".".$DATA[3];
548
+			$port   = $DATA[4]*256 + $DATA[5];
549
+			$this->ftp_debug("Trying to ".$ipaddr.":".$port." ...\n");
550
+			$data_connection = @fsockopen($ipaddr, $port, $errno, $errstr);
551
+			if (!$data_connection) {
552
+				$this->ftp_debug("Error : Cannot open data connection to ".$ipaddr.":".$port."\n");
553
+				$this->ftp_debug("Error : ".$errstr." (".$errno.")\n");
554
+				return FALSE;
555
+			}
556
+
557
+			return $data_connection;
558
+		}
559
+
560
+		function ftp_debug($message = "")
561
+		{
562
+			if ($this->debug) {
563
+				echo $message;
564
+			}
565
+
566
+			return TRUE;
567
+		}
568
+	}
569 569
 ?>
Please login to merge, or discard this patch.
Braces   +9 added lines, -3 removed lines patch added patch discarded remove patch
@@ -489,7 +489,9 @@  discard block
 block discarded – undo
489 489
 			while(($char = fgetc($this->ftp_sock)) !== FALSE)
490 490
 			{
491 491
 				$line .= $char;
492
-				if($char === "\n") break;
492
+				if($char === "\n") {
493
+					break;
494
+				}
493 495
 			}
494 496
 				
495 497
 			// 세자리 응답 코드가 나와야 한다.
@@ -512,12 +514,16 @@  discard block
 block discarded – undo
512 514
 					while(($char = fgetc($this->ftp_sock)) !== FALSE)
513 515
 					{
514 516
 						$line .= $char;
515
-						if($char === "\n") break;
517
+						if($char === "\n") {
518
+							break;
519
+						}
516 520
 					}
517 521
 					$this->ftp_resp .= $line;
518 522
 
519 523
 					// 응답 코드와 같은 코드가 나오고 공백이 있으면 끝
520
-					if($code . ' ' === substr($line, 0, 4)) break;
524
+					if($code . ' ' === substr($line, 0, 4)) {
525
+						break;
526
+					}
521 527
 				}while($line);
522 528
 			}
523 529
 
Please login to merge, or discard this patch.
Spacing   +10 added lines, -10 removed lines patch added patch discarded remove patch
@@ -81,7 +81,7 @@  discard block
 block discarded – undo
81 81
                 return FALSE;
82 82
             }
83 83
 
84
-			if(substr($this->ftp_resp, 0, 3) !== '220')
84
+			if (substr($this->ftp_resp, 0, 3) !== '220')
85 85
 			{
86 86
 				return FALSE;
87 87
 			}
@@ -486,14 +486,14 @@  discard block
 block discarded – undo
486 486
 
487 487
 			// 한줄을 읽는다.
488 488
 			$line = '';
489
-			while(($char = fgetc($this->ftp_sock)) !== FALSE)
489
+			while (($char = fgetc($this->ftp_sock)) !== FALSE)
490 490
 			{
491 491
 				$line .= $char;
492
-				if($char === "\n") break;
492
+				if ($char === "\n") break;
493 493
 			}
494 494
 				
495 495
 			// 세자리 응답 코드가 나와야 한다.
496
-			if(!preg_match('@^[0-9]{3}@', $line))
496
+			if (!preg_match('@^[0-9]{3}@', $line))
497 497
 			{
498 498
 				return FALSE;
499 499
 			}
@@ -501,7 +501,7 @@  discard block
 block discarded – undo
501 501
 			$this->ftp_resp = $line;
502 502
 
503 503
 			// 4번째 문자가 -이면 여러줄인 응답이다.
504
-			if($line[3] === '-')
504
+			if ($line[3] === '-')
505 505
 			{
506 506
 				$code = substr($line, 0, 3);
507 507
 
@@ -509,16 +509,16 @@  discard block
 block discarded – undo
509 509
 				do
510 510
 				{
511 511
 					$line = '';
512
-					while(($char = fgetc($this->ftp_sock)) !== FALSE)
512
+					while (($char = fgetc($this->ftp_sock)) !== FALSE)
513 513
 					{
514 514
 						$line .= $char;
515
-						if($char === "\n") break;
515
+						if ($char === "\n") break;
516 516
 					}
517 517
 					$this->ftp_resp .= $line;
518 518
 
519 519
 					// 응답 코드와 같은 코드가 나오고 공백이 있으면 끝
520
-					if($code . ' ' === substr($line, 0, 4)) break;
521
-				}while($line);
520
+					if ($code.' ' === substr($line, 0, 4)) break;
521
+				} while ($line);
522 522
 			}
523 523
 
524 524
             $this->ftp_debug(str_replace("\r\n", "\n", $this->ftp_resp));
@@ -545,7 +545,7 @@  discard block
 block discarded – undo
545 545
 
546 546
             $DATA = explode(",", $ip_port);
547 547
             $ipaddr = $DATA[0].".".$DATA[1].".".$DATA[2].".".$DATA[3];
548
-            $port   = $DATA[4]*256 + $DATA[5];
548
+            $port   = $DATA[4] * 256 + $DATA[5];
549 549
             $this->ftp_debug("Trying to ".$ipaddr.":".$port." ...\n");
550 550
             $data_connection = @fsockopen($ipaddr, $port, $errno, $errstr);
551 551
             if (!$data_connection) {
Please login to merge, or discard this patch.
libs/idna_convert/idna_convert.class.php 3 patches
Doc Comments   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -88,7 +88,7 @@  discard block
 block discarded – undo
88 88
      * the constructor
89 89
      *
90 90
      * @param array $options
91
-     * @return boolean
91
+     * @return boolean|null
92 92
      * @since 0.5.2
93 93
      */
94 94
     public function __construct($options = false)
@@ -393,7 +393,7 @@  discard block
 block discarded – undo
393 393
     /**
394 394
      * Use this method to get the last error ocurred
395 395
      * @param    void
396
-     * @return   string   The last error, that occured
396
+     * @return   boolean   The last error, that occured
397 397
      */
398 398
     public function get_last_error()
399 399
     {
@@ -403,7 +403,7 @@  discard block
 block discarded – undo
403 403
     /**
404 404
      * The actual decoding algorithm
405 405
      * @param string
406
-     * @return mixed
406
+     * @return false|string
407 407
      */
408 408
     protected function _decode($encoded)
409 409
     {
@@ -464,7 +464,7 @@  discard block
 block discarded – undo
464 464
     /**
465 465
      * The actual encoding algorithm
466 466
      * @param  string
467
-     * @return mixed
467
+     * @return false|string
468 468
      */
469 469
     protected function _encode($decoded)
470 470
     {
@@ -699,7 +699,7 @@  discard block
 block discarded – undo
699 699
      * Decomposes a Hangul syllable
700 700
      * (see http://www.unicode.org/unicode/reports/tr15/#Hangul
701 701
      * @param    integer  32bit UCS4 code point
702
-     * @return   array    Either Hangul Syllable decomposed or original 32bit value as one value array
702
+     * @return   integer[]    Either Hangul Syllable decomposed or original 32bit value as one value array
703 703
      */
704 704
     protected function _hangul_decompose($char)
705 705
     {
Please login to merge, or discard this patch.
Indentation   +3367 added lines, -3367 removed lines patch added patch discarded remove patch
@@ -51,3411 +51,3411 @@
 block discarded – undo
51 51
  */
52 52
 class idna_convert {
53 53
 
54
-    private $version = '0.9.0';
55
-    protected $sub_version = 'main';
54
+	private $version = '0.9.0';
55
+	protected $sub_version = 'main';
56 56
 
57
-    // NP See below
58
-    // Internal settings, do not mess with them
59
-    protected $_punycode_prefix = 'xn--';
60
-    protected $_invalid_ucs = 0x80000000;
61
-    protected $_max_ucs = 0x10FFFF;
62
-    protected $_base = 36;
63
-    protected $_tmin = 1;
64
-    protected $_tmax = 26;
65
-    protected $_skew = 38;
66
-    protected $_damp = 700;
67
-    protected $_initial_bias = 72;
68
-    protected $_initial_n = 0x80;
69
-    protected $_sbase = 0xAC00;
70
-    protected $_lbase = 0x1100;
71
-    protected $_vbase = 0x1161;
72
-    protected $_tbase = 0x11A7;
73
-    protected $_lcount = 19;
74
-    protected $_vcount = 21;
75
-    protected $_tcount = 28;
76
-    protected $_ncount = 588;   // _vcount * _tcount
77
-    protected $_scount = 11172; // _lcount * _tcount * _vcount
78
-    protected $_error = false;
79
-    protected static $_mb_string_overload = null;
80
-    // See {@link set_paramter()} for details of how to change the following
81
-    // settings from within your script / application
82
-    protected $_api_encoding = 'utf8';   // Default input charset is UTF-8
83
-    protected $_allow_overlong = false;  // Overlong UTF-8 encodings are forbidden
84
-    protected $_strict_mode = false;     // Behave strict or not
85
-    protected $_idn_version = 2003;      // Can be either 2003 (old, default) or 2008
57
+	// NP See below
58
+	// Internal settings, do not mess with them
59
+	protected $_punycode_prefix = 'xn--';
60
+	protected $_invalid_ucs = 0x80000000;
61
+	protected $_max_ucs = 0x10FFFF;
62
+	protected $_base = 36;
63
+	protected $_tmin = 1;
64
+	protected $_tmax = 26;
65
+	protected $_skew = 38;
66
+	protected $_damp = 700;
67
+	protected $_initial_bias = 72;
68
+	protected $_initial_n = 0x80;
69
+	protected $_sbase = 0xAC00;
70
+	protected $_lbase = 0x1100;
71
+	protected $_vbase = 0x1161;
72
+	protected $_tbase = 0x11A7;
73
+	protected $_lcount = 19;
74
+	protected $_vcount = 21;
75
+	protected $_tcount = 28;
76
+	protected $_ncount = 588;   // _vcount * _tcount
77
+	protected $_scount = 11172; // _lcount * _tcount * _vcount
78
+	protected $_error = false;
79
+	protected static $_mb_string_overload = null;
80
+	// See {@link set_paramter()} for details of how to change the following
81
+	// settings from within your script / application
82
+	protected $_api_encoding = 'utf8';   // Default input charset is UTF-8
83
+	protected $_allow_overlong = false;  // Overlong UTF-8 encodings are forbidden
84
+	protected $_strict_mode = false;     // Behave strict or not
85
+	protected $_idn_version = 2003;      // Can be either 2003 (old, default) or 2008
86 86
 
87
-    /**
88
-     * the constructor
89
-     *
90
-     * @param array $options
91
-     * @return boolean
92
-     * @since 0.5.2
93
-     */
94
-    public function __construct($options = false)
95
-    {
96
-        $this->slast = $this->_sbase + $this->_lcount * $this->_vcount * $this->_tcount;
97
-        // If parameters are given, pass these to the respective method
98
-        if (is_array($options)) {
99
-            $this->set_parameter($options);
100
-        }
87
+	/**
88
+	 * the constructor
89
+	 *
90
+	 * @param array $options
91
+	 * @return boolean
92
+	 * @since 0.5.2
93
+	 */
94
+	public function __construct($options = false)
95
+	{
96
+		$this->slast = $this->_sbase + $this->_lcount * $this->_vcount * $this->_tcount;
97
+		// If parameters are given, pass these to the respective method
98
+		if (is_array($options)) {
99
+			$this->set_parameter($options);
100
+		}
101 101
 
102
-        // populate mbstring overloading cache if not set
103
-        if (self::$_mb_string_overload === null) {
104
-            self::$_mb_string_overload = (extension_loaded('mbstring') && (ini_get('mbstring.func_overload') & 0x02) === 0x02);
105
-        }
106
-    }
102
+		// populate mbstring overloading cache if not set
103
+		if (self::$_mb_string_overload === null) {
104
+			self::$_mb_string_overload = (extension_loaded('mbstring') && (ini_get('mbstring.func_overload') & 0x02) === 0x02);
105
+		}
106
+	}
107 107
 
108
-    public function get_version()
109
-    {
110
-        return $this->version.'-'.$this->sub_version;
111
-    }
108
+	public function get_version()
109
+	{
110
+		return $this->version.'-'.$this->sub_version;
111
+	}
112 112
 
113
-    /**
114
-     * Sets a new option value. Available options and values:
115
-     * [encoding - Use either UTF-8, UCS4 as array or UCS4 as string as input ('utf8' for UTF-8,
116
-     *         'ucs4_string' and 'ucs4_array' respectively for UCS4); The output is always UTF-8]
117
-     * [overlong - Unicode does not allow unnecessarily long encodings of chars,
118
-     *             to allow this, set this parameter to true, else to false;
119
-     *             default is false.]
120
-     * [strict - true: strict mode, good for registration purposes - Causes errors
121
-     *           on failures; false: loose mode, ideal for "wildlife" applications
122
-     *           by silently ignoring errors and returning the original input instead
123
-     *
124
-     * @param    mixed     Parameter to set (string: single parameter; array of Parameter => Value pairs)
125
-     * @param    string    Value to use (if parameter 1 is a string)
126
-     * @return   boolean   true on success, false otherwise
127
-     */
128
-    public function set_parameter($option, $value = false)
129
-    {
130
-        if (!is_array($option)) {
131
-            $option = array($option => $value);
132
-        }
133
-        foreach ($option as $k => $v) {
134
-            switch ($k) {
135
-                case 'encoding':
136
-                    switch ($v) {
137
-                        case 'utf8':
138
-                        case 'ucs4_string':
139
-                        case 'ucs4_array':
140
-                            $this->_api_encoding = $v;
141
-                            break;
142
-                        default:
143
-                            $this->_error('Set Parameter: Unknown parameter ' . $v . ' for option ' . $k);
144
-                            return false;
145
-                    }
146
-                    break;
147
-                case 'overlong':
148
-                    $this->_allow_overlong = ($v) ? true : false;
149
-                    break;
150
-                case 'strict':
151
-                    $this->_strict_mode = ($v) ? true : false;
152
-                    break;
153
-                case 'idn_version':
154
-                    if (in_array($v, array('2003', '2008'))) {
155
-                        $this->_idn_version = $v;
156
-                    } else {
157
-                        $this->_error('Set Parameter: Unknown parameter ' . $v . ' for option ' . $k);
158
-                    }
159
-                    break;
160
-                case 'encode_german_sz': // Deprecated
161
-                    if (!$v) {
162
-                        self::$NP['replacemaps'][0xDF] = array(0x73, 0x73);
163
-                    } else {
164
-                        unset(self::$NP['replacemaps'][0xDF]);
165
-                    }
166
-                    break;
167
-                default:
168
-                    $this->_error('Set Parameter: Unknown option ' . $k);
169
-                    return false;
170
-            }
171
-        }
172
-        return true;
173
-    }
113
+	/**
114
+	 * Sets a new option value. Available options and values:
115
+	 * [encoding - Use either UTF-8, UCS4 as array or UCS4 as string as input ('utf8' for UTF-8,
116
+	 *         'ucs4_string' and 'ucs4_array' respectively for UCS4); The output is always UTF-8]
117
+	 * [overlong - Unicode does not allow unnecessarily long encodings of chars,
118
+	 *             to allow this, set this parameter to true, else to false;
119
+	 *             default is false.]
120
+	 * [strict - true: strict mode, good for registration purposes - Causes errors
121
+	 *           on failures; false: loose mode, ideal for "wildlife" applications
122
+	 *           by silently ignoring errors and returning the original input instead
123
+	 *
124
+	 * @param    mixed     Parameter to set (string: single parameter; array of Parameter => Value pairs)
125
+	 * @param    string    Value to use (if parameter 1 is a string)
126
+	 * @return   boolean   true on success, false otherwise
127
+	 */
128
+	public function set_parameter($option, $value = false)
129
+	{
130
+		if (!is_array($option)) {
131
+			$option = array($option => $value);
132
+		}
133
+		foreach ($option as $k => $v) {
134
+			switch ($k) {
135
+				case 'encoding':
136
+					switch ($v) {
137
+						case 'utf8':
138
+						case 'ucs4_string':
139
+						case 'ucs4_array':
140
+							$this->_api_encoding = $v;
141
+							break;
142
+						default:
143
+							$this->_error('Set Parameter: Unknown parameter ' . $v . ' for option ' . $k);
144
+							return false;
145
+					}
146
+					break;
147
+				case 'overlong':
148
+					$this->_allow_overlong = ($v) ? true : false;
149
+					break;
150
+				case 'strict':
151
+					$this->_strict_mode = ($v) ? true : false;
152
+					break;
153
+				case 'idn_version':
154
+					if (in_array($v, array('2003', '2008'))) {
155
+						$this->_idn_version = $v;
156
+					} else {
157
+						$this->_error('Set Parameter: Unknown parameter ' . $v . ' for option ' . $k);
158
+					}
159
+					break;
160
+				case 'encode_german_sz': // Deprecated
161
+					if (!$v) {
162
+						self::$NP['replacemaps'][0xDF] = array(0x73, 0x73);
163
+					} else {
164
+						unset(self::$NP['replacemaps'][0xDF]);
165
+					}
166
+					break;
167
+				default:
168
+					$this->_error('Set Parameter: Unknown option ' . $k);
169
+					return false;
170
+			}
171
+		}
172
+		return true;
173
+	}
174 174
 
175
-    /**
176
-     * Decode a given ACE domain name
177
-     * @param    string   Domain name (ACE string)
178
-     * [@param    string   Desired output encoding, see {@link set_parameter}]
179
-     * @return   string   Decoded Domain name (UTF-8 or UCS-4)
180
-     */
181
-    public function decode($input, $one_time_encoding = false)
182
-    {
183
-        // Optionally set
184
-        if ($one_time_encoding) {
185
-            switch ($one_time_encoding) {
186
-                case 'utf8':
187
-                case 'ucs4_string':
188
-                case 'ucs4_array':
189
-                    break;
190
-                default:
191
-                    $this->_error('Unknown encoding ' . $one_time_encoding);
192
-                    return false;
193
-            }
194
-        }
195
-        // Make sure to drop any newline characters around
196
-        $input = trim($input);
175
+	/**
176
+	 * Decode a given ACE domain name
177
+	 * @param    string   Domain name (ACE string)
178
+	 * [@param    string   Desired output encoding, see {@link set_parameter}]
179
+	 * @return   string   Decoded Domain name (UTF-8 or UCS-4)
180
+	 */
181
+	public function decode($input, $one_time_encoding = false)
182
+	{
183
+		// Optionally set
184
+		if ($one_time_encoding) {
185
+			switch ($one_time_encoding) {
186
+				case 'utf8':
187
+				case 'ucs4_string':
188
+				case 'ucs4_array':
189
+					break;
190
+				default:
191
+					$this->_error('Unknown encoding ' . $one_time_encoding);
192
+					return false;
193
+			}
194
+		}
195
+		// Make sure to drop any newline characters around
196
+		$input = trim($input);
197 197
 
198
-        // Negotiate input and try to determine, whether it is a plain string,
199
-        // an email address or something like a complete URL
200
-        if (strpos($input, '@')) { // Maybe it is an email address
201
-            // No no in strict mode
202
-            if ($this->_strict_mode) {
203
-                $this->_error('Only simple domain name parts can be handled in strict mode');
204
-                return false;
205
-            }
206
-            list ($email_pref, $input) = explode('@', $input, 2);
207
-            $arr = explode('.', $input);
208
-            foreach ($arr as $k => $v) {
209
-                if (preg_match('!^' . preg_quote($this->_punycode_prefix, '!') . '!', $v)) {
210
-                    $conv = $this->_decode($v);
211
-                    if ($conv) {
212
-                        $arr[$k] = $conv;
213
-                    }
214
-                }
215
-            }
216
-            $input = join('.', $arr);
217
-            $arr = explode('.', $email_pref);
218
-            foreach ($arr as $k => $v) {
219
-                if (preg_match('!^' . preg_quote($this->_punycode_prefix, '!') . '!', $v)) {
220
-                    $conv = $this->_decode($v);
221
-                    if ($conv) {
222
-                        $arr[$k] = $conv;
223
-                    }
224
-                }
225
-            }
226
-            $email_pref = join('.', $arr);
227
-            $return = $email_pref . '@' . $input;
228
-        } elseif (preg_match('![:\./]!', $input)) { // Or a complete domain name (with or without paths / parameters)
229
-            // No no in strict mode
230
-            if ($this->_strict_mode) {
231
-                $this->_error('Only simple domain name parts can be handled in strict mode');
232
-                return false;
233
-            }
234
-            $parsed = parse_url($input);
235
-            if (isset($parsed['host'])) {
236
-                $arr = explode('.', $parsed['host']);
237
-                foreach ($arr as $k => $v) {
238
-                    $conv = $this->_decode($v);
239
-                    if ($conv) {
240
-                        $arr[$k] = $conv;
241
-                    }
242
-                }
243
-                $parsed['host'] = join('.', $arr);
244
-                $return = (empty($parsed['scheme']) ? '' : $parsed['scheme'] . (strtolower($parsed['scheme']) == 'mailto' ? ':' : '://')).
245
-                        (empty($parsed['user']) ? '' : $parsed['user'] . (empty($parsed['pass']) ? '' : ':' . $parsed['pass']) . '@').
246
-                        $parsed['host'].
247
-                        (empty($parsed['port']) ? '' : ':' . $parsed['port']).
248
-                        (empty($parsed['path']) ? '' : $parsed['path']).
249
-                        (empty($parsed['query']) ? '' : '?' . $parsed['query']).
250
-                        (empty($parsed['fragment']) ? '' : '#' . $parsed['fragment']);
251
-            } else { // parse_url seems to have failed, try without it
252
-                $arr = explode('.', $input);
253
-                foreach ($arr as $k => $v) {
254
-                    $conv = $this->_decode($v);
255
-                    $arr[$k] = ($conv) ? $conv : $v;
256
-                }
257
-                $return = join('.', $arr);
258
-            }
259
-        } else { // Otherwise we consider it being a pure domain name string
260
-            $return = $this->_decode($input);
261
-            if (!$return) {
262
-                $return = $input;
263
-            }
264
-        }
265
-        // The output is UTF-8 by default, other output formats need conversion here
266
-        // If one time encoding is given, use this, else the objects property
267
-        switch (($one_time_encoding) ? $one_time_encoding : $this->_api_encoding) {
268
-            case 'utf8':        return $return; // break;
269
-            case 'ucs4_string': return $this->_ucs4_to_ucs4_string($this->_utf8_to_ucs4($return));  // break;
270
-            case 'ucs4_array':  return $this->_utf8_to_ucs4($return); // break;
271
-            default:            $this->_error('Unsupported output format'); return false;
272
-        }
273
-    }
198
+		// Negotiate input and try to determine, whether it is a plain string,
199
+		// an email address or something like a complete URL
200
+		if (strpos($input, '@')) { // Maybe it is an email address
201
+			// No no in strict mode
202
+			if ($this->_strict_mode) {
203
+				$this->_error('Only simple domain name parts can be handled in strict mode');
204
+				return false;
205
+			}
206
+			list ($email_pref, $input) = explode('@', $input, 2);
207
+			$arr = explode('.', $input);
208
+			foreach ($arr as $k => $v) {
209
+				if (preg_match('!^' . preg_quote($this->_punycode_prefix, '!') . '!', $v)) {
210
+					$conv = $this->_decode($v);
211
+					if ($conv) {
212
+						$arr[$k] = $conv;
213
+					}
214
+				}
215
+			}
216
+			$input = join('.', $arr);
217
+			$arr = explode('.', $email_pref);
218
+			foreach ($arr as $k => $v) {
219
+				if (preg_match('!^' . preg_quote($this->_punycode_prefix, '!') . '!', $v)) {
220
+					$conv = $this->_decode($v);
221
+					if ($conv) {
222
+						$arr[$k] = $conv;
223
+					}
224
+				}
225
+			}
226
+			$email_pref = join('.', $arr);
227
+			$return = $email_pref . '@' . $input;
228
+		} elseif (preg_match('![:\./]!', $input)) { // Or a complete domain name (with or without paths / parameters)
229
+			// No no in strict mode
230
+			if ($this->_strict_mode) {
231
+				$this->_error('Only simple domain name parts can be handled in strict mode');
232
+				return false;
233
+			}
234
+			$parsed = parse_url($input);
235
+			if (isset($parsed['host'])) {
236
+				$arr = explode('.', $parsed['host']);
237
+				foreach ($arr as $k => $v) {
238
+					$conv = $this->_decode($v);
239
+					if ($conv) {
240
+						$arr[$k] = $conv;
241
+					}
242
+				}
243
+				$parsed['host'] = join('.', $arr);
244
+				$return = (empty($parsed['scheme']) ? '' : $parsed['scheme'] . (strtolower($parsed['scheme']) == 'mailto' ? ':' : '://')).
245
+						(empty($parsed['user']) ? '' : $parsed['user'] . (empty($parsed['pass']) ? '' : ':' . $parsed['pass']) . '@').
246
+						$parsed['host'].
247
+						(empty($parsed['port']) ? '' : ':' . $parsed['port']).
248
+						(empty($parsed['path']) ? '' : $parsed['path']).
249
+						(empty($parsed['query']) ? '' : '?' . $parsed['query']).
250
+						(empty($parsed['fragment']) ? '' : '#' . $parsed['fragment']);
251
+			} else { // parse_url seems to have failed, try without it
252
+				$arr = explode('.', $input);
253
+				foreach ($arr as $k => $v) {
254
+					$conv = $this->_decode($v);
255
+					$arr[$k] = ($conv) ? $conv : $v;
256
+				}
257
+				$return = join('.', $arr);
258
+			}
259
+		} else { // Otherwise we consider it being a pure domain name string
260
+			$return = $this->_decode($input);
261
+			if (!$return) {
262
+				$return = $input;
263
+			}
264
+		}
265
+		// The output is UTF-8 by default, other output formats need conversion here
266
+		// If one time encoding is given, use this, else the objects property
267
+		switch (($one_time_encoding) ? $one_time_encoding : $this->_api_encoding) {
268
+			case 'utf8':        return $return; // break;
269
+			case 'ucs4_string': return $this->_ucs4_to_ucs4_string($this->_utf8_to_ucs4($return));  // break;
270
+			case 'ucs4_array':  return $this->_utf8_to_ucs4($return); // break;
271
+			default:            $this->_error('Unsupported output format'); return false;
272
+		}
273
+	}
274 274
 
275
-    /**
276
-     * Encode a given UTF-8 domain name
277
-     * @param    string   Domain name (UTF-8 or UCS-4)
278
-     * [@param    string   Desired input encoding, see {@link set_parameter}]
279
-     * @return   string   Encoded Domain name (ACE string)
280
-     */
281
-    public function encode($decoded, $one_time_encoding = false)
282
-    {
283
-        // Forcing conversion of input to UCS4 array
284
-        // If one time encoding is given, use this, else the objects property
285
-        switch ($one_time_encoding ? $one_time_encoding : $this->_api_encoding) {
286
-            case 'utf8':
287
-                $decoded = $this->_utf8_to_ucs4($decoded);
288
-                break;
289
-            case 'ucs4_string':
290
-                $decoded = $this->_ucs4_string_to_ucs4($decoded);
291
-            case 'ucs4_array':
292
-                break;
293
-            default:
294
-                $this->_error('Unsupported input format: ' . ($one_time_encoding ? $one_time_encoding : $this->_api_encoding));
295
-                return false;
296
-        }
275
+	/**
276
+	 * Encode a given UTF-8 domain name
277
+	 * @param    string   Domain name (UTF-8 or UCS-4)
278
+	 * [@param    string   Desired input encoding, see {@link set_parameter}]
279
+	 * @return   string   Encoded Domain name (ACE string)
280
+	 */
281
+	public function encode($decoded, $one_time_encoding = false)
282
+	{
283
+		// Forcing conversion of input to UCS4 array
284
+		// If one time encoding is given, use this, else the objects property
285
+		switch ($one_time_encoding ? $one_time_encoding : $this->_api_encoding) {
286
+			case 'utf8':
287
+				$decoded = $this->_utf8_to_ucs4($decoded);
288
+				break;
289
+			case 'ucs4_string':
290
+				$decoded = $this->_ucs4_string_to_ucs4($decoded);
291
+			case 'ucs4_array':
292
+				break;
293
+			default:
294
+				$this->_error('Unsupported input format: ' . ($one_time_encoding ? $one_time_encoding : $this->_api_encoding));
295
+				return false;
296
+		}
297 297
 
298
-        // No input, no output, what else did you expect?
299
-        if (empty($decoded)) {
300
-            return '';
301
-        }
298
+		// No input, no output, what else did you expect?
299
+		if (empty($decoded)) {
300
+			return '';
301
+		}
302 302
 
303
-        // Anchors for iteration
304
-        $last_begin = 0;
305
-        // Output string
306
-        $output = '';
307
-        foreach ($decoded as $k => $v) {
308
-            // Make sure to use just the plain dot
309
-            switch ($v) {
310
-                case 0x3002:
311
-                case 0xFF0E:
312
-                case 0xFF61:
313
-                    $decoded[$k] = 0x2E;
314
-                    // Right, no break here, the above are converted to dots anyway
315
-                // Stumbling across an anchoring character
316
-                case 0x2E:
317
-                case 0x2F:
318
-                case 0x3A:
319
-                case 0x3F:
320
-                case 0x40:
321
-                    // Neither email addresses nor URLs allowed in strict mode
322
-                    if ($this->_strict_mode) {
323
-                        $this->_error('Neither email addresses nor URLs are allowed in strict mode.');
324
-                        return false;
325
-                    } else {
326
-                        // Skip first char
327
-                        if ($k) {
328
-                            $encoded = '';
329
-                            $encoded = $this->_encode(array_slice($decoded, $last_begin, (($k) - $last_begin)));
330
-                            if ($encoded) {
331
-                                $output .= $encoded;
332
-                            } else {
333
-                                $output .= $this->_ucs4_to_utf8(array_slice($decoded, $last_begin, (($k) - $last_begin)));
334
-                            }
335
-                            $output .= chr($decoded[$k]);
336
-                        }
337
-                        $last_begin = $k + 1;
338
-                    }
339
-            }
340
-        }
341
-        // Catch the rest of the string
342
-        if ($last_begin) {
343
-            $inp_len = sizeof($decoded);
344
-            $encoded = '';
345
-            $encoded = $this->_encode(array_slice($decoded, $last_begin, (($inp_len) - $last_begin)));
346
-            if ($encoded) {
347
-                $output .= $encoded;
348
-            } else {
349
-                $output .= $this->_ucs4_to_utf8(array_slice($decoded, $last_begin, (($inp_len) - $last_begin)));
350
-            }
351
-            return $output;
352
-        } else {
353
-            if (false !== ($output = $this->_encode($decoded))) {
354
-                return $output;
355
-            } else {
356
-                return $this->_ucs4_to_utf8($decoded);
357
-            }
358
-        }
359
-    }
303
+		// Anchors for iteration
304
+		$last_begin = 0;
305
+		// Output string
306
+		$output = '';
307
+		foreach ($decoded as $k => $v) {
308
+			// Make sure to use just the plain dot
309
+			switch ($v) {
310
+				case 0x3002:
311
+				case 0xFF0E:
312
+				case 0xFF61:
313
+					$decoded[$k] = 0x2E;
314
+					// Right, no break here, the above are converted to dots anyway
315
+				// Stumbling across an anchoring character
316
+				case 0x2E:
317
+				case 0x2F:
318
+				case 0x3A:
319
+				case 0x3F:
320
+				case 0x40:
321
+					// Neither email addresses nor URLs allowed in strict mode
322
+					if ($this->_strict_mode) {
323
+						$this->_error('Neither email addresses nor URLs are allowed in strict mode.');
324
+						return false;
325
+					} else {
326
+						// Skip first char
327
+						if ($k) {
328
+							$encoded = '';
329
+							$encoded = $this->_encode(array_slice($decoded, $last_begin, (($k) - $last_begin)));
330
+							if ($encoded) {
331
+								$output .= $encoded;
332
+							} else {
333
+								$output .= $this->_ucs4_to_utf8(array_slice($decoded, $last_begin, (($k) - $last_begin)));
334
+							}
335
+							$output .= chr($decoded[$k]);
336
+						}
337
+						$last_begin = $k + 1;
338
+					}
339
+			}
340
+		}
341
+		// Catch the rest of the string
342
+		if ($last_begin) {
343
+			$inp_len = sizeof($decoded);
344
+			$encoded = '';
345
+			$encoded = $this->_encode(array_slice($decoded, $last_begin, (($inp_len) - $last_begin)));
346
+			if ($encoded) {
347
+				$output .= $encoded;
348
+			} else {
349
+				$output .= $this->_ucs4_to_utf8(array_slice($decoded, $last_begin, (($inp_len) - $last_begin)));
350
+			}
351
+			return $output;
352
+		} else {
353
+			if (false !== ($output = $this->_encode($decoded))) {
354
+				return $output;
355
+			} else {
356
+				return $this->_ucs4_to_utf8($decoded);
357
+			}
358
+		}
359
+	}
360 360
 
361
-    /**
362
-     * Removes a weakness of encode(), which cannot properly handle URIs but instead encodes their
363
-     * path or query components, too.
364
-     * @param string  $uri  Expects the URI as a UTF-8 (or ASCII) string
365
-     * @return  string  The URI encoded to Punycode, everything but the host component is left alone
366
-     * @since 0.6.4
367
-     */
368
-    public function encode_uri($uri)
369
-    {
370
-        $parsed = parse_url($uri);
371
-        if (!isset($parsed['host'])) {
372
-            $this->_error('The given string does not look like a URI');
373
-            return false;
374
-        }
375
-        $arr = explode('.', $parsed['host']);
376
-        foreach ($arr as $k => $v) {
377
-            $conv = $this->encode($v, 'utf8');
378
-            if ($conv) {
379
-                $arr[$k] = $conv;
380
-            }
381
-        }
382
-        $parsed['host'] = join('.', $arr);
383
-        $return = (empty($parsed['scheme']) ? '' : $parsed['scheme'] . (strtolower($parsed['scheme']) == 'mailto' ? ':' : '://')).
384
-                (empty($parsed['user']) ? '' : $parsed['user'] . (empty($parsed['pass']) ? '' : ':' . $parsed['pass']) . '@').
385
-                $parsed['host'].
386
-                (empty($parsed['port']) ? '' : ':' . $parsed['port']).
387
-                (empty($parsed['path']) ? '' : $parsed['path']).
388
-                (empty($parsed['query']) ? '' : '?' . $parsed['query']).
389
-                (empty($parsed['fragment']) ? '' : '#' . $parsed['fragment']);
390
-        return $return;
391
-    }
361
+	/**
362
+	 * Removes a weakness of encode(), which cannot properly handle URIs but instead encodes their
363
+	 * path or query components, too.
364
+	 * @param string  $uri  Expects the URI as a UTF-8 (or ASCII) string
365
+	 * @return  string  The URI encoded to Punycode, everything but the host component is left alone
366
+	 * @since 0.6.4
367
+	 */
368
+	public function encode_uri($uri)
369
+	{
370
+		$parsed = parse_url($uri);
371
+		if (!isset($parsed['host'])) {
372
+			$this->_error('The given string does not look like a URI');
373
+			return false;
374
+		}
375
+		$arr = explode('.', $parsed['host']);
376
+		foreach ($arr as $k => $v) {
377
+			$conv = $this->encode($v, 'utf8');
378
+			if ($conv) {
379
+				$arr[$k] = $conv;
380
+			}
381
+		}
382
+		$parsed['host'] = join('.', $arr);
383
+		$return = (empty($parsed['scheme']) ? '' : $parsed['scheme'] . (strtolower($parsed['scheme']) == 'mailto' ? ':' : '://')).
384
+				(empty($parsed['user']) ? '' : $parsed['user'] . (empty($parsed['pass']) ? '' : ':' . $parsed['pass']) . '@').
385
+				$parsed['host'].
386
+				(empty($parsed['port']) ? '' : ':' . $parsed['port']).
387
+				(empty($parsed['path']) ? '' : $parsed['path']).
388
+				(empty($parsed['query']) ? '' : '?' . $parsed['query']).
389
+				(empty($parsed['fragment']) ? '' : '#' . $parsed['fragment']);
390
+		return $return;
391
+	}
392 392
 
393
-    /**
394
-     * Use this method to get the last error ocurred
395
-     * @param    void
396
-     * @return   string   The last error, that occured
397
-     */
398
-    public function get_last_error()
399
-    {
400
-        return $this->_error;
401
-    }
393
+	/**
394
+	 * Use this method to get the last error ocurred
395
+	 * @param    void
396
+	 * @return   string   The last error, that occured
397
+	 */
398
+	public function get_last_error()
399
+	{
400
+		return $this->_error;
401
+	}
402 402
 
403
-    /**
404
-     * The actual decoding algorithm
405
-     * @param string
406
-     * @return mixed
407
-     */
408
-    protected function _decode($encoded)
409
-    {
410
-        $decoded = array();
411
-        // find the Punycode prefix
412
-        if (!preg_match('!^' . preg_quote($this->_punycode_prefix, '!') . '!', $encoded)) {
413
-            $this->_error('This is not a punycode string');
414
-            return false;
415
-        }
416
-        $encode_test = preg_replace('!^' . preg_quote($this->_punycode_prefix, '!') . '!', '', $encoded);
417
-        // If nothing left after removing the prefix, it is hopeless
418
-        if (!$encode_test) {
419
-            $this->_error('The given encoded string was empty');
420
-            return false;
421
-        }
422
-        // Find last occurence of the delimiter
423
-        $delim_pos = strrpos($encoded, '-');
424
-        if ($delim_pos > self::byteLength($this->_punycode_prefix)) {
425
-            for ($k = self::byteLength($this->_punycode_prefix); $k < $delim_pos; ++$k) {
426
-                $decoded[] = ord($encoded{$k});
427
-            }
428
-        }
429
-        $deco_len = count($decoded);
430
-        $enco_len = self::byteLength($encoded);
403
+	/**
404
+	 * The actual decoding algorithm
405
+	 * @param string
406
+	 * @return mixed
407
+	 */
408
+	protected function _decode($encoded)
409
+	{
410
+		$decoded = array();
411
+		// find the Punycode prefix
412
+		if (!preg_match('!^' . preg_quote($this->_punycode_prefix, '!') . '!', $encoded)) {
413
+			$this->_error('This is not a punycode string');
414
+			return false;
415
+		}
416
+		$encode_test = preg_replace('!^' . preg_quote($this->_punycode_prefix, '!') . '!', '', $encoded);
417
+		// If nothing left after removing the prefix, it is hopeless
418
+		if (!$encode_test) {
419
+			$this->_error('The given encoded string was empty');
420
+			return false;
421
+		}
422
+		// Find last occurence of the delimiter
423
+		$delim_pos = strrpos($encoded, '-');
424
+		if ($delim_pos > self::byteLength($this->_punycode_prefix)) {
425
+			for ($k = self::byteLength($this->_punycode_prefix); $k < $delim_pos; ++$k) {
426
+				$decoded[] = ord($encoded{$k});
427
+			}
428
+		}
429
+		$deco_len = count($decoded);
430
+		$enco_len = self::byteLength($encoded);
431 431
 
432
-        // Wandering through the strings; init
433
-        $is_first = true;
434
-        $bias = $this->_initial_bias;
435
-        $idx = 0;
436
-        $char = $this->_initial_n;
432
+		// Wandering through the strings; init
433
+		$is_first = true;
434
+		$bias = $this->_initial_bias;
435
+		$idx = 0;
436
+		$char = $this->_initial_n;
437 437
 
438
-        for ($enco_idx = ($delim_pos) ? ($delim_pos + 1) : 0; $enco_idx < $enco_len; ++$deco_len) {
439
-            for ($old_idx = $idx, $w = 1, $k = $this->_base; 1; $k += $this->_base) {
440
-                $digit = $this->_decode_digit($encoded{$enco_idx++});
441
-                $idx += $digit * $w;
442
-                $t = ($k <= $bias) ? $this->_tmin :
443
-                        (($k >= $bias + $this->_tmax) ? $this->_tmax : ($k - $bias));
444
-                if ($digit < $t) {
445
-                    break;
446
-                }
447
-                $w = (int) ($w * ($this->_base - $t));
448
-            }
449
-            $bias = $this->_adapt($idx - $old_idx, $deco_len + 1, $is_first);
450
-            $is_first = false;
451
-            $char += (int) ($idx / ($deco_len + 1));
452
-            $idx %= ($deco_len + 1);
453
-            if ($deco_len > 0) {
454
-                // Make room for the decoded char
455
-                for ($i = $deco_len; $i > $idx; $i--) {
456
-                    $decoded[$i] = $decoded[($i - 1)];
457
-                }
458
-            }
459
-            $decoded[$idx++] = $char;
460
-        }
461
-        return $this->_ucs4_to_utf8($decoded);
462
-    }
438
+		for ($enco_idx = ($delim_pos) ? ($delim_pos + 1) : 0; $enco_idx < $enco_len; ++$deco_len) {
439
+			for ($old_idx = $idx, $w = 1, $k = $this->_base; 1; $k += $this->_base) {
440
+				$digit = $this->_decode_digit($encoded{$enco_idx++});
441
+				$idx += $digit * $w;
442
+				$t = ($k <= $bias) ? $this->_tmin :
443
+						(($k >= $bias + $this->_tmax) ? $this->_tmax : ($k - $bias));
444
+				if ($digit < $t) {
445
+					break;
446
+				}
447
+				$w = (int) ($w * ($this->_base - $t));
448
+			}
449
+			$bias = $this->_adapt($idx - $old_idx, $deco_len + 1, $is_first);
450
+			$is_first = false;
451
+			$char += (int) ($idx / ($deco_len + 1));
452
+			$idx %= ($deco_len + 1);
453
+			if ($deco_len > 0) {
454
+				// Make room for the decoded char
455
+				for ($i = $deco_len; $i > $idx; $i--) {
456
+					$decoded[$i] = $decoded[($i - 1)];
457
+				}
458
+			}
459
+			$decoded[$idx++] = $char;
460
+		}
461
+		return $this->_ucs4_to_utf8($decoded);
462
+	}
463 463
 
464
-    /**
465
-     * The actual encoding algorithm
466
-     * @param  string
467
-     * @return mixed
468
-     */
469
-    protected function _encode($decoded)
470
-    {
471
-        // We cannot encode a domain name containing the Punycode prefix
472
-        $extract = self::byteLength($this->_punycode_prefix);
473
-        $check_pref = $this->_utf8_to_ucs4($this->_punycode_prefix);
474
-        $check_deco = array_slice($decoded, 0, $extract);
464
+	/**
465
+	 * The actual encoding algorithm
466
+	 * @param  string
467
+	 * @return mixed
468
+	 */
469
+	protected function _encode($decoded)
470
+	{
471
+		// We cannot encode a domain name containing the Punycode prefix
472
+		$extract = self::byteLength($this->_punycode_prefix);
473
+		$check_pref = $this->_utf8_to_ucs4($this->_punycode_prefix);
474
+		$check_deco = array_slice($decoded, 0, $extract);
475 475
 
476
-        if ($check_pref == $check_deco) {
477
-            $this->_error('This is already a punycode string');
478
-            return false;
479
-        }
480
-        // We will not try to encode strings consisting of basic code points only
481
-        $encodable = false;
482
-        foreach ($decoded as $k => $v) {
483
-            if ($v > 0x7a) {
484
-                $encodable = true;
485
-                break;
486
-            }
487
-        }
488
-        if (!$encodable) {
489
-            $this->_error('The given string does not contain encodable chars');
490
-            return false;
491
-        }
492
-        // Do NAMEPREP
493
-        $decoded = $this->_nameprep($decoded);
494
-        if (!$decoded || !is_array($decoded)) {
495
-            return false; // NAMEPREP failed
496
-        }
497
-        $deco_len = count($decoded);
498
-        if (!$deco_len) {
499
-            return false; // Empty array
500
-        }
501
-        $codecount = 0; // How many chars have been consumed
502
-        $encoded = '';
503
-        // Copy all basic code points to output
504
-        for ($i = 0; $i < $deco_len; ++$i) {
505
-            $test = $decoded[$i];
506
-            // Will match [-0-9a-zA-Z]
507
-            if ((0x2F < $test && $test < 0x40) || (0x40 < $test && $test < 0x5B) || (0x60 < $test && $test <= 0x7B) || (0x2D == $test)) {
508
-                $encoded .= chr($decoded[$i]);
509
-                $codecount++;
510
-            }
511
-        }
512
-        if ($codecount == $deco_len) {
513
-            return $encoded; // All codepoints were basic ones
514
-        }
515
-        // Start with the prefix; copy it to output
516
-        $encoded = $this->_punycode_prefix . $encoded;
517
-        // If we have basic code points in output, add an hyphen to the end
518
-        if ($codecount) {
519
-            $encoded .= '-';
520
-        }
521
-        // Now find and encode all non-basic code points
522
-        $is_first = true;
523
-        $cur_code = $this->_initial_n;
524
-        $bias = $this->_initial_bias;
525
-        $delta = 0;
526
-        while ($codecount < $deco_len) {
527
-            // Find the smallest code point >= the current code point and
528
-            // remember the last ouccrence of it in the input
529
-            for ($i = 0, $next_code = $this->_max_ucs; $i < $deco_len; $i++) {
530
-                if ($decoded[$i] >= $cur_code && $decoded[$i] <= $next_code) {
531
-                    $next_code = $decoded[$i];
532
-                }
533
-            }
534
-            $delta += ($next_code - $cur_code) * ($codecount + 1);
535
-            $cur_code = $next_code;
476
+		if ($check_pref == $check_deco) {
477
+			$this->_error('This is already a punycode string');
478
+			return false;
479
+		}
480
+		// We will not try to encode strings consisting of basic code points only
481
+		$encodable = false;
482
+		foreach ($decoded as $k => $v) {
483
+			if ($v > 0x7a) {
484
+				$encodable = true;
485
+				break;
486
+			}
487
+		}
488
+		if (!$encodable) {
489
+			$this->_error('The given string does not contain encodable chars');
490
+			return false;
491
+		}
492
+		// Do NAMEPREP
493
+		$decoded = $this->_nameprep($decoded);
494
+		if (!$decoded || !is_array($decoded)) {
495
+			return false; // NAMEPREP failed
496
+		}
497
+		$deco_len = count($decoded);
498
+		if (!$deco_len) {
499
+			return false; // Empty array
500
+		}
501
+		$codecount = 0; // How many chars have been consumed
502
+		$encoded = '';
503
+		// Copy all basic code points to output
504
+		for ($i = 0; $i < $deco_len; ++$i) {
505
+			$test = $decoded[$i];
506
+			// Will match [-0-9a-zA-Z]
507
+			if ((0x2F < $test && $test < 0x40) || (0x40 < $test && $test < 0x5B) || (0x60 < $test && $test <= 0x7B) || (0x2D == $test)) {
508
+				$encoded .= chr($decoded[$i]);
509
+				$codecount++;
510
+			}
511
+		}
512
+		if ($codecount == $deco_len) {
513
+			return $encoded; // All codepoints were basic ones
514
+		}
515
+		// Start with the prefix; copy it to output
516
+		$encoded = $this->_punycode_prefix . $encoded;
517
+		// If we have basic code points in output, add an hyphen to the end
518
+		if ($codecount) {
519
+			$encoded .= '-';
520
+		}
521
+		// Now find and encode all non-basic code points
522
+		$is_first = true;
523
+		$cur_code = $this->_initial_n;
524
+		$bias = $this->_initial_bias;
525
+		$delta = 0;
526
+		while ($codecount < $deco_len) {
527
+			// Find the smallest code point >= the current code point and
528
+			// remember the last ouccrence of it in the input
529
+			for ($i = 0, $next_code = $this->_max_ucs; $i < $deco_len; $i++) {
530
+				if ($decoded[$i] >= $cur_code && $decoded[$i] <= $next_code) {
531
+					$next_code = $decoded[$i];
532
+				}
533
+			}
534
+			$delta += ($next_code - $cur_code) * ($codecount + 1);
535
+			$cur_code = $next_code;
536 536
 
537
-            // Scan input again and encode all characters whose code point is $cur_code
538
-            for ($i = 0; $i < $deco_len; $i++) {
539
-                if ($decoded[$i] < $cur_code) {
540
-                    $delta++;
541
-                } elseif ($decoded[$i] == $cur_code) {
542
-                    for ($q = $delta, $k = $this->_base; 1; $k += $this->_base) {
543
-                        $t = ($k <= $bias) ? $this->_tmin :
544
-                                (($k >= $bias + $this->_tmax) ? $this->_tmax : $k - $bias);
545
-                        if ($q < $t) {
546
-                            break;
547
-                        }
548
-                        $encoded .= $this->_encode_digit(intval($t + (($q - $t) % ($this->_base - $t)))); //v0.4.5 Changed from ceil() to intval()
549
-                        $q = (int) (($q - $t) / ($this->_base - $t));
550
-                    }
551
-                    $encoded .= $this->_encode_digit($q);
552
-                    $bias = $this->_adapt($delta, $codecount + 1, $is_first);
553
-                    $codecount++;
554
-                    $delta = 0;
555
-                    $is_first = false;
556
-                }
557
-            }
558
-            $delta++;
559
-            $cur_code++;
560
-        }
561
-        return $encoded;
562
-    }
537
+			// Scan input again and encode all characters whose code point is $cur_code
538
+			for ($i = 0; $i < $deco_len; $i++) {
539
+				if ($decoded[$i] < $cur_code) {
540
+					$delta++;
541
+				} elseif ($decoded[$i] == $cur_code) {
542
+					for ($q = $delta, $k = $this->_base; 1; $k += $this->_base) {
543
+						$t = ($k <= $bias) ? $this->_tmin :
544
+								(($k >= $bias + $this->_tmax) ? $this->_tmax : $k - $bias);
545
+						if ($q < $t) {
546
+							break;
547
+						}
548
+						$encoded .= $this->_encode_digit(intval($t + (($q - $t) % ($this->_base - $t)))); //v0.4.5 Changed from ceil() to intval()
549
+						$q = (int) (($q - $t) / ($this->_base - $t));
550
+					}
551
+					$encoded .= $this->_encode_digit($q);
552
+					$bias = $this->_adapt($delta, $codecount + 1, $is_first);
553
+					$codecount++;
554
+					$delta = 0;
555
+					$is_first = false;
556
+				}
557
+			}
558
+			$delta++;
559
+			$cur_code++;
560
+		}
561
+		return $encoded;
562
+	}
563 563
 
564
-    /**
565
-     * Adapt the bias according to the current code point and position
566
-     * @param int $delta
567
-     * @param int $npoints
568
-     * @param int $is_first
569
-     * @return int
570
-     */
571
-    protected function _adapt($delta, $npoints, $is_first)
572
-    {
573
-        $delta = intval($is_first ? ($delta / $this->_damp) : ($delta / 2));
574
-        $delta += intval($delta / $npoints);
575
-        for ($k = 0; $delta > (($this->_base - $this->_tmin) * $this->_tmax) / 2; $k += $this->_base) {
576
-            $delta = intval($delta / ($this->_base - $this->_tmin));
577
-        }
578
-        return intval($k + ($this->_base - $this->_tmin + 1) * $delta / ($delta + $this->_skew));
579
-    }
564
+	/**
565
+	 * Adapt the bias according to the current code point and position
566
+	 * @param int $delta
567
+	 * @param int $npoints
568
+	 * @param int $is_first
569
+	 * @return int
570
+	 */
571
+	protected function _adapt($delta, $npoints, $is_first)
572
+	{
573
+		$delta = intval($is_first ? ($delta / $this->_damp) : ($delta / 2));
574
+		$delta += intval($delta / $npoints);
575
+		for ($k = 0; $delta > (($this->_base - $this->_tmin) * $this->_tmax) / 2; $k += $this->_base) {
576
+			$delta = intval($delta / ($this->_base - $this->_tmin));
577
+		}
578
+		return intval($k + ($this->_base - $this->_tmin + 1) * $delta / ($delta + $this->_skew));
579
+	}
580 580
 
581
-    /**
582
-     * Encoding a certain digit
583
-     * @param    int $d
584
-     * @return string
585
-     */
586
-    protected function _encode_digit($d)
587
-    {
588
-        return chr($d + 22 + 75 * ($d < 26));
589
-    }
581
+	/**
582
+	 * Encoding a certain digit
583
+	 * @param    int $d
584
+	 * @return string
585
+	 */
586
+	protected function _encode_digit($d)
587
+	{
588
+		return chr($d + 22 + 75 * ($d < 26));
589
+	}
590 590
 
591
-    /**
592
-     * Decode a certain digit
593
-     * @param    int $cp
594
-     * @return int
595
-     */
596
-    protected function _decode_digit($cp)
597
-    {
598
-        $cp = ord($cp);
599
-        return ($cp - 48 < 10) ? $cp - 22 : (($cp - 65 < 26) ? $cp - 65 : (($cp - 97 < 26) ? $cp - 97 : $this->_base));
600
-    }
591
+	/**
592
+	 * Decode a certain digit
593
+	 * @param    int $cp
594
+	 * @return int
595
+	 */
596
+	protected function _decode_digit($cp)
597
+	{
598
+		$cp = ord($cp);
599
+		return ($cp - 48 < 10) ? $cp - 22 : (($cp - 65 < 26) ? $cp - 65 : (($cp - 97 < 26) ? $cp - 97 : $this->_base));
600
+	}
601 601
 
602
-    /**
603
-     * Internal error handling method
604
-     * @param  string $error
605
-     */
606
-    protected function _error($error = '')
607
-    {
608
-        $this->_error = $error;
609
-    }
602
+	/**
603
+	 * Internal error handling method
604
+	 * @param  string $error
605
+	 */
606
+	protected function _error($error = '')
607
+	{
608
+		$this->_error = $error;
609
+	}
610 610
 
611
-    /**
612
-     * Do Nameprep according to RFC3491 and RFC3454
613
-     * @param    array    Unicode Characters
614
-     * @return   string   Unicode Characters, Nameprep'd
615
-     */
616
-    protected function _nameprep($input)
617
-    {
618
-        $output = array();
619
-        //
620
-        // Mapping
621
-        // Walking through the input array, performing the required steps on each of
622
-        // the input chars and putting the result into the output array
623
-        // While mapping required chars we apply the cannonical ordering
624
-        foreach ($input as $v) {
625
-            // Map to nothing == skip that code point
626
-            if (in_array($v, self::$NP['map_nothing'])) {
627
-                continue;
628
-            }
629
-            // Try to find prohibited input
630
-            if (in_array($v, self::$NP['prohibit']) || in_array($v, self::$NP['general_prohibited'])) {
631
-                $this->_error('NAMEPREP: Prohibited input U+' . sprintf('%08X', $v));
632
-                return false;
633
-            }
634
-            foreach (self::$NP['prohibit_ranges'] as $range) {
635
-                if ($range[0] <= $v && $v <= $range[1]) {
636
-                    $this->_error('NAMEPREP: Prohibited input U+' . sprintf('%08X', $v));
637
-                    return false;
638
-                }
639
-            }
611
+	/**
612
+	 * Do Nameprep according to RFC3491 and RFC3454
613
+	 * @param    array    Unicode Characters
614
+	 * @return   string   Unicode Characters, Nameprep'd
615
+	 */
616
+	protected function _nameprep($input)
617
+	{
618
+		$output = array();
619
+		//
620
+		// Mapping
621
+		// Walking through the input array, performing the required steps on each of
622
+		// the input chars and putting the result into the output array
623
+		// While mapping required chars we apply the cannonical ordering
624
+		foreach ($input as $v) {
625
+			// Map to nothing == skip that code point
626
+			if (in_array($v, self::$NP['map_nothing'])) {
627
+				continue;
628
+			}
629
+			// Try to find prohibited input
630
+			if (in_array($v, self::$NP['prohibit']) || in_array($v, self::$NP['general_prohibited'])) {
631
+				$this->_error('NAMEPREP: Prohibited input U+' . sprintf('%08X', $v));
632
+				return false;
633
+			}
634
+			foreach (self::$NP['prohibit_ranges'] as $range) {
635
+				if ($range[0] <= $v && $v <= $range[1]) {
636
+					$this->_error('NAMEPREP: Prohibited input U+' . sprintf('%08X', $v));
637
+					return false;
638
+				}
639
+			}
640 640
 
641
-            if (0xAC00 <= $v && $v <= 0xD7AF) {
642
-                // Hangul syllable decomposition
643
-                foreach ($this->_hangul_decompose($v) as $out) {
644
-                    $output[] = (int) $out;
645
-                }
646
-            } elseif (($this->_idn_version == '2003') && isset(self::$NP['replacemaps_2003'][$v])) {
647
-                foreach ($this->_apply_cannonical_ordering(self::$NP['replacemaps_2003'][$v]) as $out) {
648
-                    $output[] = (int) $out;
649
-                }
650
-            } elseif (($this->_idn_version == '2008') && isset(self::$NP['replacemaps'][$v])) {
651
-                foreach ($this->_apply_cannonical_ordering(self::$NP['replacemaps'][$v]) as $out) {
652
-                    $output[] = (int) $out;
653
-                }
654
-            } else {
655
-                $output[] = (int) $v;
656
-            }
657
-        }
658
-        // Before applying any Combining, try to rearrange any Hangul syllables
659
-        $output = $this->_hangul_compose($output);
660
-        //
661
-        // Combine code points
662
-        //
663
-        $last_class = 0;
664
-        $last_starter = 0;
665
-        $out_len = count($output);
666
-        for ($i = 0; $i < $out_len; ++$i) {
667
-            $class = $this->_get_combining_class($output[$i]);
668
-            if ((!$last_class || $last_class > $class) && $class) {
669
-                // Try to match
670
-                $seq_len = $i - $last_starter;
671
-                $out = $this->_combine(array_slice($output, $last_starter, $seq_len));
672
-                // On match: Replace the last starter with the composed character and remove
673
-                // the now redundant non-starter(s)
674
-                if ($out) {
675
-                    $output[$last_starter] = $out;
676
-                    if (count($out) != $seq_len) {
677
-                        for ($j = $i + 1; $j < $out_len; ++$j) {
678
-                            $output[$j - 1] = $output[$j];
679
-                        }
680
-                        unset($output[$out_len]);
681
-                    }
682
-                    // Rewind the for loop by one, since there can be more possible compositions
683
-                    $i--;
684
-                    $out_len--;
685
-                    $last_class = ($i == $last_starter) ? 0 : $this->_get_combining_class($output[$i - 1]);
686
-                    continue;
687
-                }
688
-            }
689
-            // The current class is 0
690
-            if (!$class) {
691
-                $last_starter = $i;
692
-            }
693
-            $last_class = $class;
694
-        }
695
-        return $output;
696
-    }
641
+			if (0xAC00 <= $v && $v <= 0xD7AF) {
642
+				// Hangul syllable decomposition
643
+				foreach ($this->_hangul_decompose($v) as $out) {
644
+					$output[] = (int) $out;
645
+				}
646
+			} elseif (($this->_idn_version == '2003') && isset(self::$NP['replacemaps_2003'][$v])) {
647
+				foreach ($this->_apply_cannonical_ordering(self::$NP['replacemaps_2003'][$v]) as $out) {
648
+					$output[] = (int) $out;
649
+				}
650
+			} elseif (($this->_idn_version == '2008') && isset(self::$NP['replacemaps'][$v])) {
651
+				foreach ($this->_apply_cannonical_ordering(self::$NP['replacemaps'][$v]) as $out) {
652
+					$output[] = (int) $out;
653
+				}
654
+			} else {
655
+				$output[] = (int) $v;
656
+			}
657
+		}
658
+		// Before applying any Combining, try to rearrange any Hangul syllables
659
+		$output = $this->_hangul_compose($output);
660
+		//
661
+		// Combine code points
662
+		//
663
+		$last_class = 0;
664
+		$last_starter = 0;
665
+		$out_len = count($output);
666
+		for ($i = 0; $i < $out_len; ++$i) {
667
+			$class = $this->_get_combining_class($output[$i]);
668
+			if ((!$last_class || $last_class > $class) && $class) {
669
+				// Try to match
670
+				$seq_len = $i - $last_starter;
671
+				$out = $this->_combine(array_slice($output, $last_starter, $seq_len));
672
+				// On match: Replace the last starter with the composed character and remove
673
+				// the now redundant non-starter(s)
674
+				if ($out) {
675
+					$output[$last_starter] = $out;
676
+					if (count($out) != $seq_len) {
677
+						for ($j = $i + 1; $j < $out_len; ++$j) {
678
+							$output[$j - 1] = $output[$j];
679
+						}
680
+						unset($output[$out_len]);
681
+					}
682
+					// Rewind the for loop by one, since there can be more possible compositions
683
+					$i--;
684
+					$out_len--;
685
+					$last_class = ($i == $last_starter) ? 0 : $this->_get_combining_class($output[$i - 1]);
686
+					continue;
687
+				}
688
+			}
689
+			// The current class is 0
690
+			if (!$class) {
691
+				$last_starter = $i;
692
+			}
693
+			$last_class = $class;
694
+		}
695
+		return $output;
696
+	}
697 697
 
698
-    /**
699
-     * Decomposes a Hangul syllable
700
-     * (see http://www.unicode.org/unicode/reports/tr15/#Hangul
701
-     * @param    integer  32bit UCS4 code point
702
-     * @return   array    Either Hangul Syllable decomposed or original 32bit value as one value array
703
-     */
704
-    protected function _hangul_decompose($char)
705
-    {
706
-        $sindex = (int) $char - $this->_sbase;
707
-        if ($sindex < 0 || $sindex >= $this->_scount) {
708
-            return array($char);
709
-        }
710
-        $result = array();
711
-        $result[] = (int) $this->_lbase + $sindex / $this->_ncount;
712
-        $result[] = (int) $this->_vbase + ($sindex % $this->_ncount) / $this->_tcount;
713
-        $T = intval($this->_tbase + $sindex % $this->_tcount);
714
-        if ($T != $this->_tbase) {
715
-            $result[] = $T;
716
-        }
717
-        return $result;
718
-    }
698
+	/**
699
+	 * Decomposes a Hangul syllable
700
+	 * (see http://www.unicode.org/unicode/reports/tr15/#Hangul
701
+	 * @param    integer  32bit UCS4 code point
702
+	 * @return   array    Either Hangul Syllable decomposed or original 32bit value as one value array
703
+	 */
704
+	protected function _hangul_decompose($char)
705
+	{
706
+		$sindex = (int) $char - $this->_sbase;
707
+		if ($sindex < 0 || $sindex >= $this->_scount) {
708
+			return array($char);
709
+		}
710
+		$result = array();
711
+		$result[] = (int) $this->_lbase + $sindex / $this->_ncount;
712
+		$result[] = (int) $this->_vbase + ($sindex % $this->_ncount) / $this->_tcount;
713
+		$T = intval($this->_tbase + $sindex % $this->_tcount);
714
+		if ($T != $this->_tbase) {
715
+			$result[] = $T;
716
+		}
717
+		return $result;
718
+	}
719 719
 
720
-    /**
721
-     * Ccomposes a Hangul syllable
722
-     * (see http://www.unicode.org/unicode/reports/tr15/#Hangul
723
-     * @param    array    Decomposed UCS4 sequence
724
-     * @return   array    UCS4 sequence with syllables composed
725
-     */
726
-    protected function _hangul_compose($input)
727
-    {
728
-        $inp_len = count($input);
729
-        if (!$inp_len) {
730
-            return array();
731
-        }
732
-        $result = array();
733
-        $last = (int) $input[0];
734
-        $result[] = $last; // copy first char from input to output
720
+	/**
721
+	 * Ccomposes a Hangul syllable
722
+	 * (see http://www.unicode.org/unicode/reports/tr15/#Hangul
723
+	 * @param    array    Decomposed UCS4 sequence
724
+	 * @return   array    UCS4 sequence with syllables composed
725
+	 */
726
+	protected function _hangul_compose($input)
727
+	{
728
+		$inp_len = count($input);
729
+		if (!$inp_len) {
730
+			return array();
731
+		}
732
+		$result = array();
733
+		$last = (int) $input[0];
734
+		$result[] = $last; // copy first char from input to output
735 735
 
736
-        for ($i = 1; $i < $inp_len; ++$i) {
737
-            $char = (int) $input[$i];
738
-            $sindex = $last - $this->_sbase;
739
-            $lindex = $last - $this->_lbase;
740
-            $vindex = $char - $this->_vbase;
741
-            $tindex = $char - $this->_tbase;
742
-            // Find out, whether two current characters are LV and T
743
-            if (0 <= $sindex && $sindex < $this->_scount && ($sindex % $this->_tcount == 0) && 0 <= $tindex && $tindex <= $this->_tcount) {
744
-                // create syllable of form LVT
745
-                $last += $tindex;
746
-                $result[(count($result) - 1)] = $last; // reset last
747
-                continue; // discard char
748
-            }
749
-            // Find out, whether two current characters form L and V
750
-            if (0 <= $lindex && $lindex < $this->_lcount && 0 <= $vindex && $vindex < $this->_vcount) {
751
-                // create syllable of form LV
752
-                $last = (int) $this->_sbase + ($lindex * $this->_vcount + $vindex) * $this->_tcount;
753
-                $result[(count($result) - 1)] = $last; // reset last
754
-                continue; // discard char
755
-            }
756
-            // if neither case was true, just add the character
757
-            $last = $char;
758
-            $result[] = $char;
759
-        }
760
-        return $result;
761
-    }
736
+		for ($i = 1; $i < $inp_len; ++$i) {
737
+			$char = (int) $input[$i];
738
+			$sindex = $last - $this->_sbase;
739
+			$lindex = $last - $this->_lbase;
740
+			$vindex = $char - $this->_vbase;
741
+			$tindex = $char - $this->_tbase;
742
+			// Find out, whether two current characters are LV and T
743
+			if (0 <= $sindex && $sindex < $this->_scount && ($sindex % $this->_tcount == 0) && 0 <= $tindex && $tindex <= $this->_tcount) {
744
+				// create syllable of form LVT
745
+				$last += $tindex;
746
+				$result[(count($result) - 1)] = $last; // reset last
747
+				continue; // discard char
748
+			}
749
+			// Find out, whether two current characters form L and V
750
+			if (0 <= $lindex && $lindex < $this->_lcount && 0 <= $vindex && $vindex < $this->_vcount) {
751
+				// create syllable of form LV
752
+				$last = (int) $this->_sbase + ($lindex * $this->_vcount + $vindex) * $this->_tcount;
753
+				$result[(count($result) - 1)] = $last; // reset last
754
+				continue; // discard char
755
+			}
756
+			// if neither case was true, just add the character
757
+			$last = $char;
758
+			$result[] = $char;
759
+		}
760
+		return $result;
761
+	}
762 762
 
763
-    /**
764
-     * Returns the combining class of a certain wide char
765
-     * @param    integer    Wide char to check (32bit integer)
766
-     * @return   integer    Combining class if found, else 0
767
-     */
768
-    protected function _get_combining_class($char)
769
-    {
770
-        return isset(self::$NP['norm_combcls'][$char]) ? self::$NP['norm_combcls'][$char] : 0;
771
-    }
763
+	/**
764
+	 * Returns the combining class of a certain wide char
765
+	 * @param    integer    Wide char to check (32bit integer)
766
+	 * @return   integer    Combining class if found, else 0
767
+	 */
768
+	protected function _get_combining_class($char)
769
+	{
770
+		return isset(self::$NP['norm_combcls'][$char]) ? self::$NP['norm_combcls'][$char] : 0;
771
+	}
772 772
 
773
-    /**
774
-     * Applies the cannonical ordering of a decomposed UCS4 sequence
775
-     * @param    array      Decomposed UCS4 sequence
776
-     * @return   array      Ordered USC4 sequence
777
-     */
778
-    protected function _apply_cannonical_ordering($input)
779
-    {
780
-        $swap = true;
781
-        $size = count($input);
782
-        while ($swap) {
783
-            $swap = false;
784
-            $last = $this->_get_combining_class(intval($input[0]));
785
-            for ($i = 0; $i < $size - 1; ++$i) {
786
-                $next = $this->_get_combining_class(intval($input[$i + 1]));
787
-                if ($next != 0 && $last > $next) {
788
-                    // Move item leftward until it fits
789
-                    for ($j = $i + 1; $j > 0; --$j) {
790
-                        if ($this->_get_combining_class(intval($input[$j - 1])) <= $next) {
791
-                            break;
792
-                        }
793
-                        $t = intval($input[$j]);
794
-                        $input[$j] = intval($input[$j - 1]);
795
-                        $input[$j - 1] = $t;
796
-                        $swap = true;
797
-                    }
798
-                    // Reentering the loop looking at the old character again
799
-                    $next = $last;
800
-                }
801
-                $last = $next;
802
-            }
803
-        }
804
-        return $input;
805
-    }
773
+	/**
774
+	 * Applies the cannonical ordering of a decomposed UCS4 sequence
775
+	 * @param    array      Decomposed UCS4 sequence
776
+	 * @return   array      Ordered USC4 sequence
777
+	 */
778
+	protected function _apply_cannonical_ordering($input)
779
+	{
780
+		$swap = true;
781
+		$size = count($input);
782
+		while ($swap) {
783
+			$swap = false;
784
+			$last = $this->_get_combining_class(intval($input[0]));
785
+			for ($i = 0; $i < $size - 1; ++$i) {
786
+				$next = $this->_get_combining_class(intval($input[$i + 1]));
787
+				if ($next != 0 && $last > $next) {
788
+					// Move item leftward until it fits
789
+					for ($j = $i + 1; $j > 0; --$j) {
790
+						if ($this->_get_combining_class(intval($input[$j - 1])) <= $next) {
791
+							break;
792
+						}
793
+						$t = intval($input[$j]);
794
+						$input[$j] = intval($input[$j - 1]);
795
+						$input[$j - 1] = $t;
796
+						$swap = true;
797
+					}
798
+					// Reentering the loop looking at the old character again
799
+					$next = $last;
800
+				}
801
+				$last = $next;
802
+			}
803
+		}
804
+		return $input;
805
+	}
806 806
 
807
-    /**
808
-     * Do composition of a sequence of starter and non-starter
809
-     * @param    array      UCS4 Decomposed sequence
810
-     * @return   array      Ordered USC4 sequence
811
-     */
812
-    protected function _combine($input)
813
-    {
814
-        $inp_len = count($input);
815
-        if (0 == $inp_len) {
816
-            return false;
817
-        }
818
-        foreach (self::$NP['replacemaps'] as $np_src => $np_target) {
819
-            if ($np_target[0] != $input[0]) {
820
-                continue;
821
-            }
822
-            if (count($np_target) != $inp_len) {
823
-                continue;
824
-            }
825
-            $hit = false;
826
-            foreach ($input as $k2 => $v2) {
827
-                if ($v2 == $np_target[$k2]) {
828
-                    $hit = true;
829
-                } else {
830
-                    $hit = false;
831
-                    break;
832
-                }
833
-            }
834
-            if ($hit) {
835
-                return $np_src;
836
-            }
837
-        }
838
-        return false;
839
-    }
807
+	/**
808
+	 * Do composition of a sequence of starter and non-starter
809
+	 * @param    array      UCS4 Decomposed sequence
810
+	 * @return   array      Ordered USC4 sequence
811
+	 */
812
+	protected function _combine($input)
813
+	{
814
+		$inp_len = count($input);
815
+		if (0 == $inp_len) {
816
+			return false;
817
+		}
818
+		foreach (self::$NP['replacemaps'] as $np_src => $np_target) {
819
+			if ($np_target[0] != $input[0]) {
820
+				continue;
821
+			}
822
+			if (count($np_target) != $inp_len) {
823
+				continue;
824
+			}
825
+			$hit = false;
826
+			foreach ($input as $k2 => $v2) {
827
+				if ($v2 == $np_target[$k2]) {
828
+					$hit = true;
829
+				} else {
830
+					$hit = false;
831
+					break;
832
+				}
833
+			}
834
+			if ($hit) {
835
+				return $np_src;
836
+			}
837
+		}
838
+		return false;
839
+	}
840 840
 
841
-    /**
842
-     * This converts an UTF-8 encoded string to its UCS-4 representation
843
-     * By talking about UCS-4 "strings" we mean arrays of 32bit integers representing
844
-     * each of the "chars". This is due to PHP not being able to handle strings with
845
-     * bit depth different from 8. This apllies to the reverse method _ucs4_to_utf8(), too.
846
-     * The following UTF-8 encodings are supported:
847
-     * bytes bits  representation
848
-     * 1        7  0xxxxxxx
849
-     * 2       11  110xxxxx 10xxxxxx
850
-     * 3       16  1110xxxx 10xxxxxx 10xxxxxx
851
-     * 4       21  11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
852
-     * 5       26  111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
853
-     * 6       31  1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
854
-     * Each x represents a bit that can be used to store character data.
855
-     * The five and six byte sequences are part of Annex D of ISO/IEC 10646-1:2000
856
-     * @param string $input
857
-     * @return string
858
-     */
859
-    protected function _utf8_to_ucs4($input)
860
-    {
861
-        $output = array();
862
-        $out_len = 0;
863
-        $inp_len = self::byteLength($input);
864
-        $mode = 'next';
865
-        $test = 'none';
866
-        for ($k = 0; $k < $inp_len; ++$k) {
867
-            $v = ord($input{$k}); // Extract byte from input string
868
-            if ($v < 128) { // We found an ASCII char - put into stirng as is
869
-                $output[$out_len] = $v;
870
-                ++$out_len;
871
-                if ('add' == $mode) {
872
-                    $this->_error('Conversion from UTF-8 to UCS-4 failed: malformed input at byte ' . $k);
873
-                    return false;
874
-                }
875
-                continue;
876
-            }
877
-            if ('next' == $mode) { // Try to find the next start byte; determine the width of the Unicode char
878
-                $start_byte = $v;
879
-                $mode = 'add';
880
-                $test = 'range';
881
-                if ($v >> 5 == 6) { // &110xxxxx 10xxxxx
882
-                    $next_byte = 0; // Tells, how many times subsequent bitmasks must rotate 6bits to the left
883
-                    $v = ($v - 192) << 6;
884
-                } elseif ($v >> 4 == 14) { // &1110xxxx 10xxxxxx 10xxxxxx
885
-                    $next_byte = 1;
886
-                    $v = ($v - 224) << 12;
887
-                } elseif ($v >> 3 == 30) { // &11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
888
-                    $next_byte = 2;
889
-                    $v = ($v - 240) << 18;
890
-                } elseif ($v >> 2 == 62) { // &111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
891
-                    $next_byte = 3;
892
-                    $v = ($v - 248) << 24;
893
-                } elseif ($v >> 1 == 126) { // &1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
894
-                    $next_byte = 4;
895
-                    $v = ($v - 252) << 30;
896
-                } else {
897
-                    $this->_error('This might be UTF-8, but I don\'t understand it at byte ' . $k);
898
-                    return false;
899
-                }
900
-                if ('add' == $mode) {
901
-                    $output[$out_len] = (int) $v;
902
-                    ++$out_len;
903
-                    continue;
904
-                }
905
-            }
906
-            if ('add' == $mode) {
907
-                if (!$this->_allow_overlong && $test == 'range') {
908
-                    $test = 'none';
909
-                    if (($v < 0xA0 && $start_byte == 0xE0) || ($v < 0x90 && $start_byte == 0xF0) || ($v > 0x8F && $start_byte == 0xF4)) {
910
-                        $this->_error('Bogus UTF-8 character detected (out of legal range) at byte ' . $k);
911
-                        return false;
912
-                    }
913
-                }
914
-                if ($v >> 6 == 2) { // Bit mask must be 10xxxxxx
915
-                    $v = ($v - 128) << ($next_byte * 6);
916
-                    $output[($out_len - 1)] += $v;
917
-                    --$next_byte;
918
-                } else {
919
-                    $this->_error('Conversion from UTF-8 to UCS-4 failed: malformed input at byte ' . $k);
920
-                    return false;
921
-                }
922
-                if ($next_byte < 0) {
923
-                    $mode = 'next';
924
-                }
925
-            }
926
-        } // for
927
-        return $output;
928
-    }
841
+	/**
842
+	 * This converts an UTF-8 encoded string to its UCS-4 representation
843
+	 * By talking about UCS-4 "strings" we mean arrays of 32bit integers representing
844
+	 * each of the "chars". This is due to PHP not being able to handle strings with
845
+	 * bit depth different from 8. This apllies to the reverse method _ucs4_to_utf8(), too.
846
+	 * The following UTF-8 encodings are supported:
847
+	 * bytes bits  representation
848
+	 * 1        7  0xxxxxxx
849
+	 * 2       11  110xxxxx 10xxxxxx
850
+	 * 3       16  1110xxxx 10xxxxxx 10xxxxxx
851
+	 * 4       21  11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
852
+	 * 5       26  111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
853
+	 * 6       31  1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
854
+	 * Each x represents a bit that can be used to store character data.
855
+	 * The five and six byte sequences are part of Annex D of ISO/IEC 10646-1:2000
856
+	 * @param string $input
857
+	 * @return string
858
+	 */
859
+	protected function _utf8_to_ucs4($input)
860
+	{
861
+		$output = array();
862
+		$out_len = 0;
863
+		$inp_len = self::byteLength($input);
864
+		$mode = 'next';
865
+		$test = 'none';
866
+		for ($k = 0; $k < $inp_len; ++$k) {
867
+			$v = ord($input{$k}); // Extract byte from input string
868
+			if ($v < 128) { // We found an ASCII char - put into stirng as is
869
+				$output[$out_len] = $v;
870
+				++$out_len;
871
+				if ('add' == $mode) {
872
+					$this->_error('Conversion from UTF-8 to UCS-4 failed: malformed input at byte ' . $k);
873
+					return false;
874
+				}
875
+				continue;
876
+			}
877
+			if ('next' == $mode) { // Try to find the next start byte; determine the width of the Unicode char
878
+				$start_byte = $v;
879
+				$mode = 'add';
880
+				$test = 'range';
881
+				if ($v >> 5 == 6) { // &110xxxxx 10xxxxx
882
+					$next_byte = 0; // Tells, how many times subsequent bitmasks must rotate 6bits to the left
883
+					$v = ($v - 192) << 6;
884
+				} elseif ($v >> 4 == 14) { // &1110xxxx 10xxxxxx 10xxxxxx
885
+					$next_byte = 1;
886
+					$v = ($v - 224) << 12;
887
+				} elseif ($v >> 3 == 30) { // &11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
888
+					$next_byte = 2;
889
+					$v = ($v - 240) << 18;
890
+				} elseif ($v >> 2 == 62) { // &111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
891
+					$next_byte = 3;
892
+					$v = ($v - 248) << 24;
893
+				} elseif ($v >> 1 == 126) { // &1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
894
+					$next_byte = 4;
895
+					$v = ($v - 252) << 30;
896
+				} else {
897
+					$this->_error('This might be UTF-8, but I don\'t understand it at byte ' . $k);
898
+					return false;
899
+				}
900
+				if ('add' == $mode) {
901
+					$output[$out_len] = (int) $v;
902
+					++$out_len;
903
+					continue;
904
+				}
905
+			}
906
+			if ('add' == $mode) {
907
+				if (!$this->_allow_overlong && $test == 'range') {
908
+					$test = 'none';
909
+					if (($v < 0xA0 && $start_byte == 0xE0) || ($v < 0x90 && $start_byte == 0xF0) || ($v > 0x8F && $start_byte == 0xF4)) {
910
+						$this->_error('Bogus UTF-8 character detected (out of legal range) at byte ' . $k);
911
+						return false;
912
+					}
913
+				}
914
+				if ($v >> 6 == 2) { // Bit mask must be 10xxxxxx
915
+					$v = ($v - 128) << ($next_byte * 6);
916
+					$output[($out_len - 1)] += $v;
917
+					--$next_byte;
918
+				} else {
919
+					$this->_error('Conversion from UTF-8 to UCS-4 failed: malformed input at byte ' . $k);
920
+					return false;
921
+				}
922
+				if ($next_byte < 0) {
923
+					$mode = 'next';
924
+				}
925
+			}
926
+		} // for
927
+		return $output;
928
+	}
929 929
 
930
-    /**
931
-     * Convert UCS-4 string into UTF-8 string
932
-     * See _utf8_to_ucs4() for details
933
-     * @param string  $input
934
-     * @return string
935
-     */
936
-    protected function _ucs4_to_utf8($input)
937
-    {
938
-        $output = '';
939
-        foreach ($input as $k => $v) {
940
-            if ($v < 128) { // 7bit are transferred literally
941
-                $output .= chr($v);
942
-            } elseif ($v < (1 << 11)) { // 2 bytes
943
-                $output .= chr(192 + ($v >> 6)) . chr(128 + ($v & 63));
944
-            } elseif ($v < (1 << 16)) { // 3 bytes
945
-                $output .= chr(224 + ($v >> 12)) . chr(128 + (($v >> 6) & 63)) . chr(128 + ($v & 63));
946
-            } elseif ($v < (1 << 21)) { // 4 bytes
947
-                $output .= chr(240 + ($v >> 18)) . chr(128 + (($v >> 12) & 63)) . chr(128 + (($v >> 6) & 63)) . chr(128 + ($v & 63));
948
-            } else {
949
-                $this->_error('Conversion from UCS-4 to UTF-8 failed: malformed input at byte ' . $k);
950
-                return false;
951
-            }
952
-        }
953
-        return $output;
954
-    }
930
+	/**
931
+	 * Convert UCS-4 string into UTF-8 string
932
+	 * See _utf8_to_ucs4() for details
933
+	 * @param string  $input
934
+	 * @return string
935
+	 */
936
+	protected function _ucs4_to_utf8($input)
937
+	{
938
+		$output = '';
939
+		foreach ($input as $k => $v) {
940
+			if ($v < 128) { // 7bit are transferred literally
941
+				$output .= chr($v);
942
+			} elseif ($v < (1 << 11)) { // 2 bytes
943
+				$output .= chr(192 + ($v >> 6)) . chr(128 + ($v & 63));
944
+			} elseif ($v < (1 << 16)) { // 3 bytes
945
+				$output .= chr(224 + ($v >> 12)) . chr(128 + (($v >> 6) & 63)) . chr(128 + ($v & 63));
946
+			} elseif ($v < (1 << 21)) { // 4 bytes
947
+				$output .= chr(240 + ($v >> 18)) . chr(128 + (($v >> 12) & 63)) . chr(128 + (($v >> 6) & 63)) . chr(128 + ($v & 63));
948
+			} else {
949
+				$this->_error('Conversion from UCS-4 to UTF-8 failed: malformed input at byte ' . $k);
950
+				return false;
951
+			}
952
+		}
953
+		return $output;
954
+	}
955 955
 
956
-    /**
957
-     * Convert UCS-4 array into UCS-4 string
958
-     *
959
-     * @param array $input
960
-     * @return string
961
-     */
962
-    protected function _ucs4_to_ucs4_string($input)
963
-    {
964
-        $output = '';
965
-        // Take array values and split output to 4 bytes per value
966
-        // The bit mask is 255, which reads &11111111
967
-        foreach ($input as $v) {
968
-            $output .= chr(($v >> 24) & 255) . chr(($v >> 16) & 255) . chr(($v >> 8) & 255) . chr($v & 255);
969
-        }
970
-        return $output;
971
-    }
956
+	/**
957
+	 * Convert UCS-4 array into UCS-4 string
958
+	 *
959
+	 * @param array $input
960
+	 * @return string
961
+	 */
962
+	protected function _ucs4_to_ucs4_string($input)
963
+	{
964
+		$output = '';
965
+		// Take array values and split output to 4 bytes per value
966
+		// The bit mask is 255, which reads &11111111
967
+		foreach ($input as $v) {
968
+			$output .= chr(($v >> 24) & 255) . chr(($v >> 16) & 255) . chr(($v >> 8) & 255) . chr($v & 255);
969
+		}
970
+		return $output;
971
+	}
972 972
 
973
-    /**
974
-     * Convert UCS-4 strin into UCS-4 garray
975
-     *
976
-     * @param  string $input
977
-     * @return array
978
-     */
979
-    protected function _ucs4_string_to_ucs4($input)
980
-    {
981
-        $output = array();
982
-        $inp_len = self::byteLength($input);
983
-        // Input length must be dividable by 4
984
-        if ($inp_len % 4) {
985
-            $this->_error('Input UCS4 string is broken');
986
-            return false;
987
-        }
988
-        // Empty input - return empty output
989
-        if (!$inp_len) {
990
-            return $output;
991
-        }
992
-        for ($i = 0, $out_len = -1; $i < $inp_len; ++$i) {
993
-            // Increment output position every 4 input bytes
994
-            if (!($i % 4)) {
995
-                $out_len++;
996
-                $output[$out_len] = 0;
997
-            }
998
-            $output[$out_len] += ord($input{$i}) << (8 * (3 - ($i % 4) ) );
999
-        }
1000
-        return $output;
1001
-    }
973
+	/**
974
+	 * Convert UCS-4 strin into UCS-4 garray
975
+	 *
976
+	 * @param  string $input
977
+	 * @return array
978
+	 */
979
+	protected function _ucs4_string_to_ucs4($input)
980
+	{
981
+		$output = array();
982
+		$inp_len = self::byteLength($input);
983
+		// Input length must be dividable by 4
984
+		if ($inp_len % 4) {
985
+			$this->_error('Input UCS4 string is broken');
986
+			return false;
987
+		}
988
+		// Empty input - return empty output
989
+		if (!$inp_len) {
990
+			return $output;
991
+		}
992
+		for ($i = 0, $out_len = -1; $i < $inp_len; ++$i) {
993
+			// Increment output position every 4 input bytes
994
+			if (!($i % 4)) {
995
+				$out_len++;
996
+				$output[$out_len] = 0;
997
+			}
998
+			$output[$out_len] += ord($input{$i}) << (8 * (3 - ($i % 4) ) );
999
+		}
1000
+		return $output;
1001
+	}
1002 1002
 
1003
-    /**
1004
-     * Gets the length of a string in bytes even if mbstring function
1005
-     * overloading is turned on
1006
-     *
1007
-     * @param string $string the string for which to get the length.
1008
-     * @return integer the length of the string in bytes.
1009
-     */
1010
-    protected static function byteLength($string)
1011
-    {
1012
-        if (self::$_mb_string_overload) {
1013
-            return mb_strlen($string, '8bit');
1014
-        }
1015
-        return strlen((binary) $string);
1016
-    }
1003
+	/**
1004
+	 * Gets the length of a string in bytes even if mbstring function
1005
+	 * overloading is turned on
1006
+	 *
1007
+	 * @param string $string the string for which to get the length.
1008
+	 * @return integer the length of the string in bytes.
1009
+	 */
1010
+	protected static function byteLength($string)
1011
+	{
1012
+		if (self::$_mb_string_overload) {
1013
+			return mb_strlen($string, '8bit');
1014
+		}
1015
+		return strlen((binary) $string);
1016
+	}
1017 1017
 
1018
-    /**
1019
-     * Attempts to return a concrete IDNA instance.
1020
-     *
1021
-     * @param array $params Set of paramaters
1022
-     * @return idna_convert
1023
-     * @access public
1024
-     */
1025
-    public function getInstance($params = array())
1026
-    {
1027
-        return new idna_convert($params);
1028
-    }
1018
+	/**
1019
+	 * Attempts to return a concrete IDNA instance.
1020
+	 *
1021
+	 * @param array $params Set of paramaters
1022
+	 * @return idna_convert
1023
+	 * @access public
1024
+	 */
1025
+	public function getInstance($params = array())
1026
+	{
1027
+		return new idna_convert($params);
1028
+	}
1029 1029
 
1030
-    /**
1031
-     * Attempts to return a concrete IDNA instance for either php4 or php5,
1032
-     * only creating a new instance if no IDNA instance with the same
1033
-     * parameters currently exists.
1034
-     *
1035
-     * @param array $params Set of paramaters
1036
-     *
1037
-     * @return object idna_convert
1038
-     * @access public
1039
-     */
1040
-    public function singleton($params = array())
1041
-    {
1042
-        static $instances = array();
1030
+	/**
1031
+	 * Attempts to return a concrete IDNA instance for either php4 or php5,
1032
+	 * only creating a new instance if no IDNA instance with the same
1033
+	 * parameters currently exists.
1034
+	 *
1035
+	 * @param array $params Set of paramaters
1036
+	 *
1037
+	 * @return object idna_convert
1038
+	 * @access public
1039
+	 */
1040
+	public function singleton($params = array())
1041
+	{
1042
+		static $instances = array();
1043 1043
 
1044
-        $signature = serialize($params);
1045
-        if (!isset($instances[$signature])) {
1046
-            $instances[$signature] = idna_convert::getInstance($params);
1047
-        }
1048
-        return $instances[$signature];
1049
-    }
1044
+		$signature = serialize($params);
1045
+		if (!isset($instances[$signature])) {
1046
+			$instances[$signature] = idna_convert::getInstance($params);
1047
+		}
1048
+		return $instances[$signature];
1049
+	}
1050 1050
 
1051
-    /**
1052
-     * Holds all relevant mapping tables
1053
-     * See RFC3454 for details
1054
-     *
1055
-     * @private array
1056
-     * @since 0.5.2
1057
-     */
1058
-    protected static $NP = array(
1059
-            'map_nothing' => array(0xAD, 0x34F, 0x1806, 0x180B, 0x180C, 0x180D, 0x200B, 0x200C,
1060
-                    0x200D, 0x2060, 0xFE00, 0xFE01, 0xFE02, 0xFE03, 0xFE04, 0xFE05, 0xFE06, 0xFE07,
1061
-                    0xFE08, 0xFE09, 0xFE0A, 0xFE0B, 0xFE0C, 0xFE0D, 0xFE0E, 0xFE0F, 0xFEFF
1062
-            ),
1063
-            'general_prohibited' => array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
1064
-                    20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1065
-                    43, 44, 47, 59, 60, 61, 62, 63, 64, 91, 92, 93, 94, 95, 96, 123, 124, 125, 126, 127, 0x3002
1066
-            ),
1067
-            'prohibit' => array(0xA0, 0x340, 0x341, 0x6DD, 0x70F, 0x1680, 0x180E, 0x2000, 0x2001, 0x2002, 0x2003,
1068
-                    0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x200B, 0x200C, 0x200D, 0x200E, 0x200F,
1069
-                    0x2028, 0x2029, 0x202A, 0x202B, 0x202C, 0x202D, 0x202E, 0x202F, 0x205F, 0x206A, 0x206B, 0x206C,
1070
-                    0x206D, 0x206E, 0x206F, 0x3000, 0x33C2, 0xFEFF, 0xFFF9, 0xFFFA, 0xFFFB, 0xFFFC, 0xFFFD, 0xFFFE, 0xFFFF,
1071
-                    0x1FFFE, 0x1FFFF, 0x2FFFE, 0x2FFFF, 0x3FFFE, 0x3FFFF, 0x4FFFE, 0x4FFFF, 0x5FFFE, 0x5FFFF, 0x6FFFE,
1072
-                    0x6FFFF, 0x7FFFE, 0x7FFFF, 0x8FFFE, 0x8FFFF, 0x9FFFE, 0x9FFFF, 0xAFFFE, 0xAFFFF, 0xBFFFE, 0xBFFFF,
1073
-                    0xCFFFE, 0xCFFFF, 0xDFFFE, 0xDFFFF, 0xE0001, 0xEFFFE, 0xEFFFF, 0xFFFFE, 0xFFFFF, 0x10FFFE, 0x10FFFF
1074
-            ),
1075
-            'prohibit_ranges' => array(array(0x80, 0x9F), array(0x2060, 0x206F), array(0x1D173, 0x1D17A),
1076
-                    array(0xE000, 0xF8FF), array(0xF0000, 0xFFFFD), array(0x100000, 0x10FFFD),
1077
-                    array(0xFDD0, 0xFDEF), array(0xD800, 0xDFFF), array(0x2FF0, 0x2FFB), array(0xE0020, 0xE007F)
1078
-            ),
1079
-            'replacemaps_2003' => array(0x41 => array(0x61), 0x42 => array(0x62), 0x43 => array(0x63),
1080
-                    0x44 => array(0x64), 0x45 => array(0x65), 0x46 => array(0x66), 0x47 => array(0x67),
1081
-                    0x48 => array(0x68), 0x49 => array(0x69), 0x4A => array(0x6A), 0x4B => array(0x6B),
1082
-                    0x4C => array(0x6C), 0x4D => array(0x6D), 0x4E => array(0x6E), 0x4F => array(0x6F),
1083
-                    0x50 => array(0x70), 0x51 => array(0x71), 0x52 => array(0x72), 0x53 => array(0x73),
1084
-                    0x54 => array(0x74), 0x55 => array(0x75), 0x56 => array(0x76), 0x57 => array(0x77),
1085
-                    0x58 => array(0x78), 0x59 => array(0x79), 0x5A => array(0x7A), 0xB5 => array(0x3BC),
1086
-                    0xC0 => array(0xE0), 0xC1 => array(0xE1), 0xC2 => array(0xE2), 0xC3 => array(0xE3),
1087
-                    0xC4 => array(0xE4), 0xC5 => array(0xE5), 0xC6 => array(0xE6), 0xC7 => array(0xE7),
1088
-                    0xC8 => array(0xE8), 0xC9 => array(0xE9), 0xCA => array(0xEA), 0xCB => array(0xEB),
1089
-                    0xCC => array(0xEC), 0xCD => array(0xED), 0xCE => array(0xEE), 0xCF => array(0xEF),
1090
-                    0xD0 => array(0xF0), 0xD1 => array(0xF1), 0xD2 => array(0xF2), 0xD3 => array(0xF3),
1091
-                    0xD4 => array(0xF4), 0xD5 => array(0xF5), 0xD6 => array(0xF6), 0xD8 => array(0xF8),
1092
-                    0xD9 => array(0xF9), 0xDA => array(0xFA), 0xDB => array(0xFB), 0xDC => array(0xFC),
1093
-                    0xDD => array(0xFD), 0xDE => array(0xFE), 0xDF => array(0x73, 0x73),
1094
-                    0x100 => array(0x101), 0x102 => array(0x103), 0x104 => array(0x105),
1095
-                    0x106 => array(0x107), 0x108 => array(0x109), 0x10A => array(0x10B),
1096
-                    0x10C => array(0x10D), 0x10E => array(0x10F), 0x110 => array(0x111),
1097
-                    0x112 => array(0x113), 0x114 => array(0x115), 0x116 => array(0x117),
1098
-                    0x118 => array(0x119), 0x11A => array(0x11B), 0x11C => array(0x11D),
1099
-                    0x11E => array(0x11F), 0x120 => array(0x121), 0x122 => array(0x123),
1100
-                    0x124 => array(0x125), 0x126 => array(0x127), 0x128 => array(0x129),
1101
-                    0x12A => array(0x12B), 0x12C => array(0x12D), 0x12E => array(0x12F),
1102
-                    0x130 => array(0x69, 0x307), 0x132 => array(0x133), 0x134 => array(0x135),
1103
-                    0x136 => array(0x137), 0x139 => array(0x13A), 0x13B => array(0x13C),
1104
-                    0x13D => array(0x13E), 0x13F => array(0x140), 0x141 => array(0x142),
1105
-                    0x143 => array(0x144), 0x145 => array(0x146), 0x147 => array(0x148),
1106
-                    0x149 => array(0x2BC, 0x6E), 0x14A => array(0x14B), 0x14C => array(0x14D),
1107
-                    0x14E => array(0x14F), 0x150 => array(0x151), 0x152 => array(0x153),
1108
-                    0x154 => array(0x155), 0x156 => array(0x157), 0x158 => array(0x159),
1109
-                    0x15A => array(0x15B), 0x15C => array(0x15D), 0x15E => array(0x15F),
1110
-                    0x160 => array(0x161), 0x162 => array(0x163), 0x164 => array(0x165),
1111
-                    0x166 => array(0x167), 0x168 => array(0x169), 0x16A => array(0x16B),
1112
-                    0x16C => array(0x16D), 0x16E => array(0x16F), 0x170 => array(0x171),
1113
-                    0x172 => array(0x173), 0x174 => array(0x175), 0x176 => array(0x177),
1114
-                    0x178 => array(0xFF), 0x179 => array(0x17A), 0x17B => array(0x17C),
1115
-                    0x17D => array(0x17E), 0x17F => array(0x73), 0x181 => array(0x253),
1116
-                    0x182 => array(0x183), 0x184 => array(0x185), 0x186 => array(0x254),
1117
-                    0x187 => array(0x188), 0x189 => array(0x256), 0x18A => array(0x257),
1118
-                    0x18B => array(0x18C), 0x18E => array(0x1DD), 0x18F => array(0x259),
1119
-                    0x190 => array(0x25B), 0x191 => array(0x192), 0x193 => array(0x260),
1120
-                    0x194 => array(0x263), 0x196 => array(0x269), 0x197 => array(0x268),
1121
-                    0x198 => array(0x199), 0x19C => array(0x26F), 0x19D => array(0x272),
1122
-                    0x19F => array(0x275), 0x1A0 => array(0x1A1), 0x1A2 => array(0x1A3),
1123
-                    0x1A4 => array(0x1A5), 0x1A6 => array(0x280), 0x1A7 => array(0x1A8),
1124
-                    0x1A9 => array(0x283), 0x1AC => array(0x1AD), 0x1AE => array(0x288),
1125
-                    0x1AF => array(0x1B0), 0x1B1 => array(0x28A), 0x1B2 => array(0x28B),
1126
-                    0x1B3 => array(0x1B4), 0x1B5 => array(0x1B6), 0x1B7 => array(0x292),
1127
-                    0x1B8 => array(0x1B9), 0x1BC => array(0x1BD), 0x1C4 => array(0x1C6),
1128
-                    0x1C5 => array(0x1C6), 0x1C7 => array(0x1C9), 0x1C8 => array(0x1C9),
1129
-                    0x1CA => array(0x1CC), 0x1CB => array(0x1CC), 0x1CD => array(0x1CE),
1130
-                    0x1CF => array(0x1D0), 0x1D1 => array(0x1D2), 0x1D3 => array(0x1D4),
1131
-                    0x1D5 => array(0x1D6), 0x1D7 => array(0x1D8), 0x1D9 => array(0x1DA),
1132
-                    0x1DB => array(0x1DC), 0x1DE => array(0x1DF), 0x1E0 => array(0x1E1),
1133
-                    0x1E2 => array(0x1E3), 0x1E4 => array(0x1E5), 0x1E6 => array(0x1E7),
1134
-                    0x1E8 => array(0x1E9), 0x1EA => array(0x1EB), 0x1EC => array(0x1ED),
1135
-                    0x1EE => array(0x1EF), 0x1F0 => array(0x6A, 0x30C), 0x1F1 => array(0x1F3),
1136
-                    0x1F2 => array(0x1F3), 0x1F4 => array(0x1F5), 0x1F6 => array(0x195),
1137
-                    0x1F7 => array(0x1BF), 0x1F8 => array(0x1F9), 0x1FA => array(0x1FB),
1138
-                    0x1FC => array(0x1FD), 0x1FE => array(0x1FF), 0x200 => array(0x201),
1139
-                    0x202 => array(0x203), 0x204 => array(0x205), 0x206 => array(0x207),
1140
-                    0x208 => array(0x209), 0x20A => array(0x20B), 0x20C => array(0x20D),
1141
-                    0x20E => array(0x20F), 0x210 => array(0x211), 0x212 => array(0x213),
1142
-                    0x214 => array(0x215), 0x216 => array(0x217), 0x218 => array(0x219),
1143
-                    0x21A => array(0x21B), 0x21C => array(0x21D), 0x21E => array(0x21F),
1144
-                    0x220 => array(0x19E), 0x222 => array(0x223), 0x224 => array(0x225),
1145
-                    0x226 => array(0x227), 0x228 => array(0x229), 0x22A => array(0x22B),
1146
-                    0x22C => array(0x22D), 0x22E => array(0x22F), 0x230 => array(0x231),
1147
-                    0x232 => array(0x233), 0x345 => array(0x3B9), 0x37A => array(0x20, 0x3B9),
1148
-                    0x386 => array(0x3AC), 0x388 => array(0x3AD), 0x389 => array(0x3AE),
1149
-                    0x38A => array(0x3AF), 0x38C => array(0x3CC), 0x38E => array(0x3CD),
1150
-                    0x38F => array(0x3CE), 0x390 => array(0x3B9, 0x308, 0x301),
1151
-                    0x391 => array(0x3B1), 0x392 => array(0x3B2), 0x393 => array(0x3B3),
1152
-                    0x394 => array(0x3B4), 0x395 => array(0x3B5), 0x396 => array(0x3B6),
1153
-                    0x397 => array(0x3B7), 0x398 => array(0x3B8), 0x399 => array(0x3B9),
1154
-                    0x39A => array(0x3BA), 0x39B => array(0x3BB), 0x39C => array(0x3BC),
1155
-                    0x39D => array(0x3BD), 0x39E => array(0x3BE), 0x39F => array(0x3BF),
1156
-                    0x3A0 => array(0x3C0), 0x3A1 => array(0x3C1), 0x3A3 => array(0x3C3),
1157
-                    0x3A4 => array(0x3C4), 0x3A5 => array(0x3C5), 0x3A6 => array(0x3C6),
1158
-                    0x3A7 => array(0x3C7), 0x3A8 => array(0x3C8), 0x3A9 => array(0x3C9),
1159
-                    0x3AA => array(0x3CA), 0x3AB => array(0x3CB), 0x3B0 => array(0x3C5, 0x308, 0x301),
1160
-                    0x3C2 => array(0x3C3), 0x3D0 => array(0x3B2), 0x3D1 => array(0x3B8),
1161
-                    0x3D2 => array(0x3C5), 0x3D3 => array(0x3CD), 0x3D4 => array(0x3CB),
1162
-                    0x3D5 => array(0x3C6), 0x3D6 => array(0x3C0), 0x3D8 => array(0x3D9),
1163
-                    0x3DA => array(0x3DB), 0x3DC => array(0x3DD), 0x3DE => array(0x3DF),
1164
-                    0x3E0 => array(0x3E1), 0x3E2 => array(0x3E3), 0x3E4 => array(0x3E5),
1165
-                    0x3E6 => array(0x3E7), 0x3E8 => array(0x3E9), 0x3EA => array(0x3EB),
1166
-                    0x3EC => array(0x3ED), 0x3EE => array(0x3EF), 0x3F0 => array(0x3BA),
1167
-                    0x3F1 => array(0x3C1), 0x3F2 => array(0x3C3), 0x3F4 => array(0x3B8),
1168
-                    0x3F5 => array(0x3B5), 0x400 => array(0x450), 0x401 => array(0x451),
1169
-                    0x402 => array(0x452), 0x403 => array(0x453), 0x404 => array(0x454),
1170
-                    0x405 => array(0x455), 0x406 => array(0x456), 0x407 => array(0x457),
1171
-                    0x408 => array(0x458), 0x409 => array(0x459), 0x40A => array(0x45A),
1172
-                    0x40B => array(0x45B), 0x40C => array(0x45C), 0x40D => array(0x45D),
1173
-                    0x40E => array(0x45E), 0x40F => array(0x45F), 0x410 => array(0x430),
1174
-                    0x411 => array(0x431), 0x412 => array(0x432), 0x413 => array(0x433),
1175
-                    0x414 => array(0x434), 0x415 => array(0x435), 0x416 => array(0x436),
1176
-                    0x417 => array(0x437), 0x418 => array(0x438), 0x419 => array(0x439),
1177
-                    0x41A => array(0x43A), 0x41B => array(0x43B), 0x41C => array(0x43C),
1178
-                    0x41D => array(0x43D), 0x41E => array(0x43E), 0x41F => array(0x43F),
1179
-                    0x420 => array(0x440), 0x421 => array(0x441), 0x422 => array(0x442),
1180
-                    0x423 => array(0x443), 0x424 => array(0x444), 0x425 => array(0x445),
1181
-                    0x426 => array(0x446), 0x427 => array(0x447), 0x428 => array(0x448),
1182
-                    0x429 => array(0x449), 0x42A => array(0x44A), 0x42B => array(0x44B),
1183
-                    0x42C => array(0x44C), 0x42D => array(0x44D), 0x42E => array(0x44E),
1184
-                    0x42F => array(0x44F), 0x460 => array(0x461), 0x462 => array(0x463),
1185
-                    0x464 => array(0x465), 0x466 => array(0x467), 0x468 => array(0x469),
1186
-                    0x46A => array(0x46B), 0x46C => array(0x46D), 0x46E => array(0x46F),
1187
-                    0x470 => array(0x471), 0x472 => array(0x473), 0x474 => array(0x475),
1188
-                    0x476 => array(0x477), 0x478 => array(0x479), 0x47A => array(0x47B),
1189
-                    0x47C => array(0x47D), 0x47E => array(0x47F), 0x480 => array(0x481),
1190
-                    0x48A => array(0x48B), 0x48C => array(0x48D), 0x48E => array(0x48F),
1191
-                    0x490 => array(0x491), 0x492 => array(0x493), 0x494 => array(0x495),
1192
-                    0x496 => array(0x497), 0x498 => array(0x499), 0x49A => array(0x49B),
1193
-                    0x49C => array(0x49D), 0x49E => array(0x49F), 0x4A0 => array(0x4A1),
1194
-                    0x4A2 => array(0x4A3), 0x4A4 => array(0x4A5), 0x4A6 => array(0x4A7),
1195
-                    0x4A8 => array(0x4A9), 0x4AA => array(0x4AB), 0x4AC => array(0x4AD),
1196
-                    0x4AE => array(0x4AF), 0x4B0 => array(0x4B1), 0x4B2 => array(0x4B3),
1197
-                    0x4B4 => array(0x4B5), 0x4B6 => array(0x4B7), 0x4B8 => array(0x4B9),
1198
-                    0x4BA => array(0x4BB), 0x4BC => array(0x4BD), 0x4BE => array(0x4BF),
1199
-                    0x4C1 => array(0x4C2), 0x4C3 => array(0x4C4), 0x4C5 => array(0x4C6),
1200
-                    0x4C7 => array(0x4C8), 0x4C9 => array(0x4CA), 0x4CB => array(0x4CC),
1201
-                    0x4CD => array(0x4CE), 0x4D0 => array(0x4D1), 0x4D2 => array(0x4D3),
1202
-                    0x4D4 => array(0x4D5), 0x4D6 => array(0x4D7), 0x4D8 => array(0x4D9),
1203
-                    0x4DA => array(0x4DB), 0x4DC => array(0x4DD), 0x4DE => array(0x4DF),
1204
-                    0x4E0 => array(0x4E1), 0x4E2 => array(0x4E3), 0x4E4 => array(0x4E5),
1205
-                    0x4E6 => array(0x4E7), 0x4E8 => array(0x4E9), 0x4EA => array(0x4EB),
1206
-                    0x4EC => array(0x4ED), 0x4EE => array(0x4EF), 0x4F0 => array(0x4F1),
1207
-                    0x4F2 => array(0x4F3), 0x4F4 => array(0x4F5), 0x4F8 => array(0x4F9),
1208
-                    0x500 => array(0x501), 0x502 => array(0x503), 0x504 => array(0x505),
1209
-                    0x506 => array(0x507), 0x508 => array(0x509), 0x50A => array(0x50B),
1210
-                    0x50C => array(0x50D), 0x50E => array(0x50F), 0x531 => array(0x561),
1211
-                    0x532 => array(0x562), 0x533 => array(0x563), 0x534 => array(0x564),
1212
-                    0x535 => array(0x565), 0x536 => array(0x566), 0x537 => array(0x567),
1213
-                    0x538 => array(0x568), 0x539 => array(0x569), 0x53A => array(0x56A),
1214
-                    0x53B => array(0x56B), 0x53C => array(0x56C), 0x53D => array(0x56D),
1215
-                    0x53E => array(0x56E), 0x53F => array(0x56F), 0x540 => array(0x570),
1216
-                    0x541 => array(0x571), 0x542 => array(0x572), 0x543 => array(0x573),
1217
-                    0x544 => array(0x574), 0x545 => array(0x575), 0x546 => array(0x576),
1218
-                    0x547 => array(0x577), 0x548 => array(0x578), 0x549 => array(0x579),
1219
-                    0x54A => array(0x57A), 0x54B => array(0x57B), 0x54C => array(0x57C),
1220
-                    0x54D => array(0x57D), 0x54E => array(0x57E), 0x54F => array(0x57F),
1221
-                    0x550 => array(0x580), 0x551 => array(0x581), 0x552 => array(0x582),
1222
-                    0x553 => array(0x583), 0x554 => array(0x584), 0x555 => array(0x585),
1223
-                    0x556 => array(0x586), 0x587 => array(0x565, 0x582), 0xE33 => array(0xE4D, 0xE32),
1224
-                    0x1E00 => array(0x1E01), 0x1E02 => array(0x1E03), 0x1E04 => array(0x1E05),
1225
-                    0x1E06 => array(0x1E07), 0x1E08 => array(0x1E09), 0x1E0A => array(0x1E0B),
1226
-                    0x1E0C => array(0x1E0D), 0x1E0E => array(0x1E0F), 0x1E10 => array(0x1E11),
1227
-                    0x1E12 => array(0x1E13), 0x1E14 => array(0x1E15), 0x1E16 => array(0x1E17),
1228
-                    0x1E18 => array(0x1E19), 0x1E1A => array(0x1E1B), 0x1E1C => array(0x1E1D),
1229
-                    0x1E1E => array(0x1E1F), 0x1E20 => array(0x1E21), 0x1E22 => array(0x1E23),
1230
-                    0x1E24 => array(0x1E25), 0x1E26 => array(0x1E27), 0x1E28 => array(0x1E29),
1231
-                    0x1E2A => array(0x1E2B), 0x1E2C => array(0x1E2D), 0x1E2E => array(0x1E2F),
1232
-                    0x1E30 => array(0x1E31), 0x1E32 => array(0x1E33), 0x1E34 => array(0x1E35),
1233
-                    0x1E36 => array(0x1E37), 0x1E38 => array(0x1E39), 0x1E3A => array(0x1E3B),
1234
-                    0x1E3C => array(0x1E3D), 0x1E3E => array(0x1E3F), 0x1E40 => array(0x1E41),
1235
-                    0x1E42 => array(0x1E43), 0x1E44 => array(0x1E45), 0x1E46 => array(0x1E47),
1236
-                    0x1E48 => array(0x1E49), 0x1E4A => array(0x1E4B), 0x1E4C => array(0x1E4D),
1237
-                    0x1E4E => array(0x1E4F), 0x1E50 => array(0x1E51), 0x1E52 => array(0x1E53),
1238
-                    0x1E54 => array(0x1E55), 0x1E56 => array(0x1E57), 0x1E58 => array(0x1E59),
1239
-                    0x1E5A => array(0x1E5B), 0x1E5C => array(0x1E5D), 0x1E5E => array(0x1E5F),
1240
-                    0x1E60 => array(0x1E61), 0x1E62 => array(0x1E63), 0x1E64 => array(0x1E65),
1241
-                    0x1E66 => array(0x1E67), 0x1E68 => array(0x1E69), 0x1E6A => array(0x1E6B),
1242
-                    0x1E6C => array(0x1E6D), 0x1E6E => array(0x1E6F), 0x1E70 => array(0x1E71),
1243
-                    0x1E72 => array(0x1E73), 0x1E74 => array(0x1E75), 0x1E76 => array(0x1E77),
1244
-                    0x1E78 => array(0x1E79), 0x1E7A => array(0x1E7B), 0x1E7C => array(0x1E7D),
1245
-                    0x1E7E => array(0x1E7F), 0x1E80 => array(0x1E81), 0x1E82 => array(0x1E83),
1246
-                    0x1E84 => array(0x1E85), 0x1E86 => array(0x1E87), 0x1E88 => array(0x1E89),
1247
-                    0x1E8A => array(0x1E8B), 0x1E8C => array(0x1E8D), 0x1E8E => array(0x1E8F),
1248
-                    0x1E90 => array(0x1E91), 0x1E92 => array(0x1E93), 0x1E94 => array(0x1E95),
1249
-                    0x1E96 => array(0x68, 0x331), 0x1E97 => array(0x74, 0x308), 0x1E98 => array(0x77, 0x30A),
1250
-                    0x1E99 => array(0x79, 0x30A), 0x1E9A => array(0x61, 0x2BE), 0x1E9B => array(0x1E61),
1251
-                    0x1EA0 => array(0x1EA1), 0x1EA2 => array(0x1EA3), 0x1EA4 => array(0x1EA5),
1252
-                    0x1EA6 => array(0x1EA7), 0x1EA8 => array(0x1EA9), 0x1EAA => array(0x1EAB),
1253
-                    0x1EAC => array(0x1EAD), 0x1EAE => array(0x1EAF), 0x1EB0 => array(0x1EB1),
1254
-                    0x1EB2 => array(0x1EB3), 0x1EB4 => array(0x1EB5), 0x1EB6 => array(0x1EB7),
1255
-                    0x1EB8 => array(0x1EB9), 0x1EBA => array(0x1EBB), 0x1EBC => array(0x1EBD),
1256
-                    0x1EBE => array(0x1EBF), 0x1EC0 => array(0x1EC1), 0x1EC2 => array(0x1EC3),
1257
-                    0x1EC4 => array(0x1EC5), 0x1EC6 => array(0x1EC7), 0x1EC8 => array(0x1EC9),
1258
-                    0x1ECA => array(0x1ECB), 0x1ECC => array(0x1ECD), 0x1ECE => array(0x1ECF),
1259
-                    0x1ED0 => array(0x1ED1), 0x1ED2 => array(0x1ED3), 0x1ED4 => array(0x1ED5),
1260
-                    0x1ED6 => array(0x1ED7), 0x1ED8 => array(0x1ED9), 0x1EDA => array(0x1EDB),
1261
-                    0x1EDC => array(0x1EDD), 0x1EDE => array(0x1EDF), 0x1EE0 => array(0x1EE1),
1262
-                    0x1EE2 => array(0x1EE3), 0x1EE4 => array(0x1EE5), 0x1EE6 => array(0x1EE7),
1263
-                    0x1EE8 => array(0x1EE9), 0x1EEA => array(0x1EEB), 0x1EEC => array(0x1EED),
1264
-                    0x1EEE => array(0x1EEF), 0x1EF0 => array(0x1EF1), 0x1EF2 => array(0x1EF3),
1265
-                    0x1EF4 => array(0x1EF5), 0x1EF6 => array(0x1EF7), 0x1EF8 => array(0x1EF9),
1266
-                    0x1F08 => array(0x1F00), 0x1F09 => array(0x1F01), 0x1F0A => array(0x1F02),
1267
-                    0x1F0B => array(0x1F03), 0x1F0C => array(0x1F04), 0x1F0D => array(0x1F05),
1268
-                    0x1F0E => array(0x1F06), 0x1F0F => array(0x1F07), 0x1F18 => array(0x1F10),
1269
-                    0x1F19 => array(0x1F11), 0x1F1A => array(0x1F12), 0x1F1B => array(0x1F13),
1270
-                    0x1F1C => array(0x1F14), 0x1F1D => array(0x1F15), 0x1F28 => array(0x1F20),
1271
-                    0x1F29 => array(0x1F21), 0x1F2A => array(0x1F22), 0x1F2B => array(0x1F23),
1272
-                    0x1F2C => array(0x1F24), 0x1F2D => array(0x1F25), 0x1F2E => array(0x1F26),
1273
-                    0x1F2F => array(0x1F27), 0x1F38 => array(0x1F30), 0x1F39 => array(0x1F31),
1274
-                    0x1F3A => array(0x1F32), 0x1F3B => array(0x1F33), 0x1F3C => array(0x1F34),
1275
-                    0x1F3D => array(0x1F35), 0x1F3E => array(0x1F36), 0x1F3F => array(0x1F37),
1276
-                    0x1F48 => array(0x1F40), 0x1F49 => array(0x1F41), 0x1F4A => array(0x1F42),
1277
-                    0x1F4B => array(0x1F43), 0x1F4C => array(0x1F44), 0x1F4D => array(0x1F45),
1278
-                    0x1F50 => array(0x3C5, 0x313), 0x1F52 => array(0x3C5, 0x313, 0x300),
1279
-                    0x1F54 => array(0x3C5, 0x313, 0x301), 0x1F56 => array(0x3C5, 0x313, 0x342),
1280
-                    0x1F59 => array(0x1F51), 0x1F5B => array(0x1F53), 0x1F5D => array(0x1F55),
1281
-                    0x1F5F => array(0x1F57), 0x1F68 => array(0x1F60), 0x1F69 => array(0x1F61),
1282
-                    0x1F6A => array(0x1F62), 0x1F6B => array(0x1F63), 0x1F6C => array(0x1F64),
1283
-                    0x1F6D => array(0x1F65), 0x1F6E => array(0x1F66), 0x1F6F => array(0x1F67),
1284
-                    0x1F80 => array(0x1F00, 0x3B9), 0x1F81 => array(0x1F01, 0x3B9),
1285
-                    0x1F82 => array(0x1F02, 0x3B9), 0x1F83 => array(0x1F03, 0x3B9),
1286
-                    0x1F84 => array(0x1F04, 0x3B9), 0x1F85 => array(0x1F05, 0x3B9),
1287
-                    0x1F86 => array(0x1F06, 0x3B9), 0x1F87 => array(0x1F07, 0x3B9),
1288
-                    0x1F88 => array(0x1F00, 0x3B9), 0x1F89 => array(0x1F01, 0x3B9),
1289
-                    0x1F8A => array(0x1F02, 0x3B9), 0x1F8B => array(0x1F03, 0x3B9),
1290
-                    0x1F8C => array(0x1F04, 0x3B9), 0x1F8D => array(0x1F05, 0x3B9),
1291
-                    0x1F8E => array(0x1F06, 0x3B9), 0x1F8F => array(0x1F07, 0x3B9),
1292
-                    0x1F90 => array(0x1F20, 0x3B9), 0x1F91 => array(0x1F21, 0x3B9),
1293
-                    0x1F92 => array(0x1F22, 0x3B9), 0x1F93 => array(0x1F23, 0x3B9),
1294
-                    0x1F94 => array(0x1F24, 0x3B9), 0x1F95 => array(0x1F25, 0x3B9),
1295
-                    0x1F96 => array(0x1F26, 0x3B9), 0x1F97 => array(0x1F27, 0x3B9),
1296
-                    0x1F98 => array(0x1F20, 0x3B9), 0x1F99 => array(0x1F21, 0x3B9),
1297
-                    0x1F9A => array(0x1F22, 0x3B9), 0x1F9B => array(0x1F23, 0x3B9),
1298
-                    0x1F9C => array(0x1F24, 0x3B9), 0x1F9D => array(0x1F25, 0x3B9),
1299
-                    0x1F9E => array(0x1F26, 0x3B9), 0x1F9F => array(0x1F27, 0x3B9),
1300
-                    0x1FA0 => array(0x1F60, 0x3B9), 0x1FA1 => array(0x1F61, 0x3B9),
1301
-                    0x1FA2 => array(0x1F62, 0x3B9), 0x1FA3 => array(0x1F63, 0x3B9),
1302
-                    0x1FA4 => array(0x1F64, 0x3B9), 0x1FA5 => array(0x1F65, 0x3B9),
1303
-                    0x1FA6 => array(0x1F66, 0x3B9), 0x1FA7 => array(0x1F67, 0x3B9),
1304
-                    0x1FA8 => array(0x1F60, 0x3B9), 0x1FA9 => array(0x1F61, 0x3B9),
1305
-                    0x1FAA => array(0x1F62, 0x3B9), 0x1FAB => array(0x1F63, 0x3B9),
1306
-                    0x1FAC => array(0x1F64, 0x3B9), 0x1FAD => array(0x1F65, 0x3B9),
1307
-                    0x1FAE => array(0x1F66, 0x3B9), 0x1FAF => array(0x1F67, 0x3B9),
1308
-                    0x1FB2 => array(0x1F70, 0x3B9), 0x1FB3 => array(0x3B1, 0x3B9),
1309
-                    0x1FB4 => array(0x3AC, 0x3B9), 0x1FB6 => array(0x3B1, 0x342),
1310
-                    0x1FB7 => array(0x3B1, 0x342, 0x3B9), 0x1FB8 => array(0x1FB0),
1311
-                    0x1FB9 => array(0x1FB1), 0x1FBA => array(0x1F70), 0x1FBB => array(0x1F71),
1312
-                    0x1FBC => array(0x3B1, 0x3B9), 0x1FBE => array(0x3B9),
1313
-                    0x1FC2 => array(0x1F74, 0x3B9), 0x1FC3 => array(0x3B7, 0x3B9),
1314
-                    0x1FC4 => array(0x3AE, 0x3B9), 0x1FC6 => array(0x3B7, 0x342),
1315
-                    0x1FC7 => array(0x3B7, 0x342, 0x3B9), 0x1FC8 => array(0x1F72),
1316
-                    0x1FC9 => array(0x1F73), 0x1FCA => array(0x1F74), 0x1FCB => array(0x1F75),
1317
-                    0x1FCC => array(0x3B7, 0x3B9), 0x1FD2 => array(0x3B9, 0x308, 0x300),
1318
-                    0x1FD3 => array(0x3B9, 0x308, 0x301), 0x1FD6 => array(0x3B9, 0x342),
1319
-                    0x1FD7 => array(0x3B9, 0x308, 0x342), 0x1FD8 => array(0x1FD0),
1320
-                    0x1FD9 => array(0x1FD1), 0x1FDA => array(0x1F76),
1321
-                    0x1FDB => array(0x1F77), 0x1FE2 => array(0x3C5, 0x308, 0x300),
1322
-                    0x1FE3 => array(0x3C5, 0x308, 0x301), 0x1FE4 => array(0x3C1, 0x313),
1323
-                    0x1FE6 => array(0x3C5, 0x342), 0x1FE7 => array(0x3C5, 0x308, 0x342),
1324
-                    0x1FE8 => array(0x1FE0), 0x1FE9 => array(0x1FE1),
1325
-                    0x1FEA => array(0x1F7A), 0x1FEB => array(0x1F7B),
1326
-                    0x1FEC => array(0x1FE5), 0x1FF2 => array(0x1F7C, 0x3B9),
1327
-                    0x1FF3 => array(0x3C9, 0x3B9), 0x1FF4 => array(0x3CE, 0x3B9),
1328
-                    0x1FF6 => array(0x3C9, 0x342), 0x1FF7 => array(0x3C9, 0x342, 0x3B9),
1329
-                    0x1FF8 => array(0x1F78), 0x1FF9 => array(0x1F79), 0x1FFA => array(0x1F7C),
1330
-                    0x1FFB => array(0x1F7D), 0x1FFC => array(0x3C9, 0x3B9),
1331
-                    0x20A8 => array(0x72, 0x73), 0x2102 => array(0x63), 0x2103 => array(0xB0, 0x63),
1332
-                    0x2107 => array(0x25B), 0x2109 => array(0xB0, 0x66), 0x210B => array(0x68),
1333
-                    0x210C => array(0x68), 0x210D => array(0x68), 0x2110 => array(0x69),
1334
-                    0x2111 => array(0x69), 0x2112 => array(0x6C), 0x2115 => array(0x6E),
1335
-                    0x2116 => array(0x6E, 0x6F), 0x2119 => array(0x70), 0x211A => array(0x71),
1336
-                    0x211B => array(0x72), 0x211C => array(0x72), 0x211D => array(0x72),
1337
-                    0x2120 => array(0x73, 0x6D), 0x2121 => array(0x74, 0x65, 0x6C),
1338
-                    0x2122 => array(0x74, 0x6D), 0x2124 => array(0x7A), 0x2126 => array(0x3C9),
1339
-                    0x2128 => array(0x7A), 0x212A => array(0x6B), 0x212B => array(0xE5),
1340
-                    0x212C => array(0x62), 0x212D => array(0x63), 0x2130 => array(0x65),
1341
-                    0x2131 => array(0x66), 0x2133 => array(0x6D), 0x213E => array(0x3B3),
1342
-                    0x213F => array(0x3C0), 0x2145 => array(0x64), 0x2160 => array(0x2170),
1343
-                    0x2161 => array(0x2171), 0x2162 => array(0x2172), 0x2163 => array(0x2173),
1344
-                    0x2164 => array(0x2174), 0x2165 => array(0x2175), 0x2166 => array(0x2176),
1345
-                    0x2167 => array(0x2177), 0x2168 => array(0x2178), 0x2169 => array(0x2179),
1346
-                    0x216A => array(0x217A), 0x216B => array(0x217B), 0x216C => array(0x217C),
1347
-                    0x216D => array(0x217D), 0x216E => array(0x217E), 0x216F => array(0x217F),
1348
-                    0x24B6 => array(0x24D0), 0x24B7 => array(0x24D1), 0x24B8 => array(0x24D2),
1349
-                    0x24B9 => array(0x24D3), 0x24BA => array(0x24D4), 0x24BB => array(0x24D5),
1350
-                    0x24BC => array(0x24D6), 0x24BD => array(0x24D7), 0x24BE => array(0x24D8),
1351
-                    0x24BF => array(0x24D9), 0x24C0 => array(0x24DA), 0x24C1 => array(0x24DB),
1352
-                    0x24C2 => array(0x24DC), 0x24C3 => array(0x24DD), 0x24C4 => array(0x24DE),
1353
-                    0x24C5 => array(0x24DF), 0x24C6 => array(0x24E0), 0x24C7 => array(0x24E1),
1354
-                    0x24C8 => array(0x24E2), 0x24C9 => array(0x24E3), 0x24CA => array(0x24E4),
1355
-                    0x24CB => array(0x24E5), 0x24CC => array(0x24E6), 0x24CD => array(0x24E7),
1356
-                    0x24CE => array(0x24E8), 0x24CF => array(0x24E9), 0x3371 => array(0x68, 0x70, 0x61),
1357
-                    0x3373 => array(0x61, 0x75), 0x3375 => array(0x6F, 0x76),
1358
-                    0x3380 => array(0x70, 0x61), 0x3381 => array(0x6E, 0x61),
1359
-                    0x3382 => array(0x3BC, 0x61), 0x3383 => array(0x6D, 0x61),
1360
-                    0x3384 => array(0x6B, 0x61), 0x3385 => array(0x6B, 0x62),
1361
-                    0x3386 => array(0x6D, 0x62), 0x3387 => array(0x67, 0x62),
1362
-                    0x338A => array(0x70, 0x66), 0x338B => array(0x6E, 0x66),
1363
-                    0x338C => array(0x3BC, 0x66), 0x3390 => array(0x68, 0x7A),
1364
-                    0x3391 => array(0x6B, 0x68, 0x7A), 0x3392 => array(0x6D, 0x68, 0x7A),
1365
-                    0x3393 => array(0x67, 0x68, 0x7A), 0x3394 => array(0x74, 0x68, 0x7A),
1366
-                    0x33A9 => array(0x70, 0x61), 0x33AA => array(0x6B, 0x70, 0x61),
1367
-                    0x33AB => array(0x6D, 0x70, 0x61), 0x33AC => array(0x67, 0x70, 0x61),
1368
-                    0x33B4 => array(0x70, 0x76), 0x33B5 => array(0x6E, 0x76),
1369
-                    0x33B6 => array(0x3BC, 0x76), 0x33B7 => array(0x6D, 0x76),
1370
-                    0x33B8 => array(0x6B, 0x76), 0x33B9 => array(0x6D, 0x76),
1371
-                    0x33BA => array(0x70, 0x77), 0x33BB => array(0x6E, 0x77),
1372
-                    0x33BC => array(0x3BC, 0x77), 0x33BD => array(0x6D, 0x77),
1373
-                    0x33BE => array(0x6B, 0x77), 0x33BF => array(0x6D, 0x77),
1374
-                    0x33C0 => array(0x6B, 0x3C9), 0x33C1 => array(0x6D, 0x3C9), /*
1051
+	/**
1052
+	 * Holds all relevant mapping tables
1053
+	 * See RFC3454 for details
1054
+	 *
1055
+	 * @private array
1056
+	 * @since 0.5.2
1057
+	 */
1058
+	protected static $NP = array(
1059
+			'map_nothing' => array(0xAD, 0x34F, 0x1806, 0x180B, 0x180C, 0x180D, 0x200B, 0x200C,
1060
+					0x200D, 0x2060, 0xFE00, 0xFE01, 0xFE02, 0xFE03, 0xFE04, 0xFE05, 0xFE06, 0xFE07,
1061
+					0xFE08, 0xFE09, 0xFE0A, 0xFE0B, 0xFE0C, 0xFE0D, 0xFE0E, 0xFE0F, 0xFEFF
1062
+			),
1063
+			'general_prohibited' => array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
1064
+					20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1065
+					43, 44, 47, 59, 60, 61, 62, 63, 64, 91, 92, 93, 94, 95, 96, 123, 124, 125, 126, 127, 0x3002
1066
+			),
1067
+			'prohibit' => array(0xA0, 0x340, 0x341, 0x6DD, 0x70F, 0x1680, 0x180E, 0x2000, 0x2001, 0x2002, 0x2003,
1068
+					0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x200B, 0x200C, 0x200D, 0x200E, 0x200F,
1069
+					0x2028, 0x2029, 0x202A, 0x202B, 0x202C, 0x202D, 0x202E, 0x202F, 0x205F, 0x206A, 0x206B, 0x206C,
1070
+					0x206D, 0x206E, 0x206F, 0x3000, 0x33C2, 0xFEFF, 0xFFF9, 0xFFFA, 0xFFFB, 0xFFFC, 0xFFFD, 0xFFFE, 0xFFFF,
1071
+					0x1FFFE, 0x1FFFF, 0x2FFFE, 0x2FFFF, 0x3FFFE, 0x3FFFF, 0x4FFFE, 0x4FFFF, 0x5FFFE, 0x5FFFF, 0x6FFFE,
1072
+					0x6FFFF, 0x7FFFE, 0x7FFFF, 0x8FFFE, 0x8FFFF, 0x9FFFE, 0x9FFFF, 0xAFFFE, 0xAFFFF, 0xBFFFE, 0xBFFFF,
1073
+					0xCFFFE, 0xCFFFF, 0xDFFFE, 0xDFFFF, 0xE0001, 0xEFFFE, 0xEFFFF, 0xFFFFE, 0xFFFFF, 0x10FFFE, 0x10FFFF
1074
+			),
1075
+			'prohibit_ranges' => array(array(0x80, 0x9F), array(0x2060, 0x206F), array(0x1D173, 0x1D17A),
1076
+					array(0xE000, 0xF8FF), array(0xF0000, 0xFFFFD), array(0x100000, 0x10FFFD),
1077
+					array(0xFDD0, 0xFDEF), array(0xD800, 0xDFFF), array(0x2FF0, 0x2FFB), array(0xE0020, 0xE007F)
1078
+			),
1079
+			'replacemaps_2003' => array(0x41 => array(0x61), 0x42 => array(0x62), 0x43 => array(0x63),
1080
+					0x44 => array(0x64), 0x45 => array(0x65), 0x46 => array(0x66), 0x47 => array(0x67),
1081
+					0x48 => array(0x68), 0x49 => array(0x69), 0x4A => array(0x6A), 0x4B => array(0x6B),
1082
+					0x4C => array(0x6C), 0x4D => array(0x6D), 0x4E => array(0x6E), 0x4F => array(0x6F),
1083
+					0x50 => array(0x70), 0x51 => array(0x71), 0x52 => array(0x72), 0x53 => array(0x73),
1084
+					0x54 => array(0x74), 0x55 => array(0x75), 0x56 => array(0x76), 0x57 => array(0x77),
1085
+					0x58 => array(0x78), 0x59 => array(0x79), 0x5A => array(0x7A), 0xB5 => array(0x3BC),
1086
+					0xC0 => array(0xE0), 0xC1 => array(0xE1), 0xC2 => array(0xE2), 0xC3 => array(0xE3),
1087
+					0xC4 => array(0xE4), 0xC5 => array(0xE5), 0xC6 => array(0xE6), 0xC7 => array(0xE7),
1088
+					0xC8 => array(0xE8), 0xC9 => array(0xE9), 0xCA => array(0xEA), 0xCB => array(0xEB),
1089
+					0xCC => array(0xEC), 0xCD => array(0xED), 0xCE => array(0xEE), 0xCF => array(0xEF),
1090
+					0xD0 => array(0xF0), 0xD1 => array(0xF1), 0xD2 => array(0xF2), 0xD3 => array(0xF3),
1091
+					0xD4 => array(0xF4), 0xD5 => array(0xF5), 0xD6 => array(0xF6), 0xD8 => array(0xF8),
1092
+					0xD9 => array(0xF9), 0xDA => array(0xFA), 0xDB => array(0xFB), 0xDC => array(0xFC),
1093
+					0xDD => array(0xFD), 0xDE => array(0xFE), 0xDF => array(0x73, 0x73),
1094
+					0x100 => array(0x101), 0x102 => array(0x103), 0x104 => array(0x105),
1095
+					0x106 => array(0x107), 0x108 => array(0x109), 0x10A => array(0x10B),
1096
+					0x10C => array(0x10D), 0x10E => array(0x10F), 0x110 => array(0x111),
1097
+					0x112 => array(0x113), 0x114 => array(0x115), 0x116 => array(0x117),
1098
+					0x118 => array(0x119), 0x11A => array(0x11B), 0x11C => array(0x11D),
1099
+					0x11E => array(0x11F), 0x120 => array(0x121), 0x122 => array(0x123),
1100
+					0x124 => array(0x125), 0x126 => array(0x127), 0x128 => array(0x129),
1101
+					0x12A => array(0x12B), 0x12C => array(0x12D), 0x12E => array(0x12F),
1102
+					0x130 => array(0x69, 0x307), 0x132 => array(0x133), 0x134 => array(0x135),
1103
+					0x136 => array(0x137), 0x139 => array(0x13A), 0x13B => array(0x13C),
1104
+					0x13D => array(0x13E), 0x13F => array(0x140), 0x141 => array(0x142),
1105
+					0x143 => array(0x144), 0x145 => array(0x146), 0x147 => array(0x148),
1106
+					0x149 => array(0x2BC, 0x6E), 0x14A => array(0x14B), 0x14C => array(0x14D),
1107
+					0x14E => array(0x14F), 0x150 => array(0x151), 0x152 => array(0x153),
1108
+					0x154 => array(0x155), 0x156 => array(0x157), 0x158 => array(0x159),
1109
+					0x15A => array(0x15B), 0x15C => array(0x15D), 0x15E => array(0x15F),
1110
+					0x160 => array(0x161), 0x162 => array(0x163), 0x164 => array(0x165),
1111
+					0x166 => array(0x167), 0x168 => array(0x169), 0x16A => array(0x16B),
1112
+					0x16C => array(0x16D), 0x16E => array(0x16F), 0x170 => array(0x171),
1113
+					0x172 => array(0x173), 0x174 => array(0x175), 0x176 => array(0x177),
1114
+					0x178 => array(0xFF), 0x179 => array(0x17A), 0x17B => array(0x17C),
1115
+					0x17D => array(0x17E), 0x17F => array(0x73), 0x181 => array(0x253),
1116
+					0x182 => array(0x183), 0x184 => array(0x185), 0x186 => array(0x254),
1117
+					0x187 => array(0x188), 0x189 => array(0x256), 0x18A => array(0x257),
1118
+					0x18B => array(0x18C), 0x18E => array(0x1DD), 0x18F => array(0x259),
1119
+					0x190 => array(0x25B), 0x191 => array(0x192), 0x193 => array(0x260),
1120
+					0x194 => array(0x263), 0x196 => array(0x269), 0x197 => array(0x268),
1121
+					0x198 => array(0x199), 0x19C => array(0x26F), 0x19D => array(0x272),
1122
+					0x19F => array(0x275), 0x1A0 => array(0x1A1), 0x1A2 => array(0x1A3),
1123
+					0x1A4 => array(0x1A5), 0x1A6 => array(0x280), 0x1A7 => array(0x1A8),
1124
+					0x1A9 => array(0x283), 0x1AC => array(0x1AD), 0x1AE => array(0x288),
1125
+					0x1AF => array(0x1B0), 0x1B1 => array(0x28A), 0x1B2 => array(0x28B),
1126
+					0x1B3 => array(0x1B4), 0x1B5 => array(0x1B6), 0x1B7 => array(0x292),
1127
+					0x1B8 => array(0x1B9), 0x1BC => array(0x1BD), 0x1C4 => array(0x1C6),
1128
+					0x1C5 => array(0x1C6), 0x1C7 => array(0x1C9), 0x1C8 => array(0x1C9),
1129
+					0x1CA => array(0x1CC), 0x1CB => array(0x1CC), 0x1CD => array(0x1CE),
1130
+					0x1CF => array(0x1D0), 0x1D1 => array(0x1D2), 0x1D3 => array(0x1D4),
1131
+					0x1D5 => array(0x1D6), 0x1D7 => array(0x1D8), 0x1D9 => array(0x1DA),
1132
+					0x1DB => array(0x1DC), 0x1DE => array(0x1DF), 0x1E0 => array(0x1E1),
1133
+					0x1E2 => array(0x1E3), 0x1E4 => array(0x1E5), 0x1E6 => array(0x1E7),
1134
+					0x1E8 => array(0x1E9), 0x1EA => array(0x1EB), 0x1EC => array(0x1ED),
1135
+					0x1EE => array(0x1EF), 0x1F0 => array(0x6A, 0x30C), 0x1F1 => array(0x1F3),
1136
+					0x1F2 => array(0x1F3), 0x1F4 => array(0x1F5), 0x1F6 => array(0x195),
1137
+					0x1F7 => array(0x1BF), 0x1F8 => array(0x1F9), 0x1FA => array(0x1FB),
1138
+					0x1FC => array(0x1FD), 0x1FE => array(0x1FF), 0x200 => array(0x201),
1139
+					0x202 => array(0x203), 0x204 => array(0x205), 0x206 => array(0x207),
1140
+					0x208 => array(0x209), 0x20A => array(0x20B), 0x20C => array(0x20D),
1141
+					0x20E => array(0x20F), 0x210 => array(0x211), 0x212 => array(0x213),
1142
+					0x214 => array(0x215), 0x216 => array(0x217), 0x218 => array(0x219),
1143
+					0x21A => array(0x21B), 0x21C => array(0x21D), 0x21E => array(0x21F),
1144
+					0x220 => array(0x19E), 0x222 => array(0x223), 0x224 => array(0x225),
1145
+					0x226 => array(0x227), 0x228 => array(0x229), 0x22A => array(0x22B),
1146
+					0x22C => array(0x22D), 0x22E => array(0x22F), 0x230 => array(0x231),
1147
+					0x232 => array(0x233), 0x345 => array(0x3B9), 0x37A => array(0x20, 0x3B9),
1148
+					0x386 => array(0x3AC), 0x388 => array(0x3AD), 0x389 => array(0x3AE),
1149
+					0x38A => array(0x3AF), 0x38C => array(0x3CC), 0x38E => array(0x3CD),
1150
+					0x38F => array(0x3CE), 0x390 => array(0x3B9, 0x308, 0x301),
1151
+					0x391 => array(0x3B1), 0x392 => array(0x3B2), 0x393 => array(0x3B3),
1152
+					0x394 => array(0x3B4), 0x395 => array(0x3B5), 0x396 => array(0x3B6),
1153
+					0x397 => array(0x3B7), 0x398 => array(0x3B8), 0x399 => array(0x3B9),
1154
+					0x39A => array(0x3BA), 0x39B => array(0x3BB), 0x39C => array(0x3BC),
1155
+					0x39D => array(0x3BD), 0x39E => array(0x3BE), 0x39F => array(0x3BF),
1156
+					0x3A0 => array(0x3C0), 0x3A1 => array(0x3C1), 0x3A3 => array(0x3C3),
1157
+					0x3A4 => array(0x3C4), 0x3A5 => array(0x3C5), 0x3A6 => array(0x3C6),
1158
+					0x3A7 => array(0x3C7), 0x3A8 => array(0x3C8), 0x3A9 => array(0x3C9),
1159
+					0x3AA => array(0x3CA), 0x3AB => array(0x3CB), 0x3B0 => array(0x3C5, 0x308, 0x301),
1160
+					0x3C2 => array(0x3C3), 0x3D0 => array(0x3B2), 0x3D1 => array(0x3B8),
1161
+					0x3D2 => array(0x3C5), 0x3D3 => array(0x3CD), 0x3D4 => array(0x3CB),
1162
+					0x3D5 => array(0x3C6), 0x3D6 => array(0x3C0), 0x3D8 => array(0x3D9),
1163
+					0x3DA => array(0x3DB), 0x3DC => array(0x3DD), 0x3DE => array(0x3DF),
1164
+					0x3E0 => array(0x3E1), 0x3E2 => array(0x3E3), 0x3E4 => array(0x3E5),
1165
+					0x3E6 => array(0x3E7), 0x3E8 => array(0x3E9), 0x3EA => array(0x3EB),
1166
+					0x3EC => array(0x3ED), 0x3EE => array(0x3EF), 0x3F0 => array(0x3BA),
1167
+					0x3F1 => array(0x3C1), 0x3F2 => array(0x3C3), 0x3F4 => array(0x3B8),
1168
+					0x3F5 => array(0x3B5), 0x400 => array(0x450), 0x401 => array(0x451),
1169
+					0x402 => array(0x452), 0x403 => array(0x453), 0x404 => array(0x454),
1170
+					0x405 => array(0x455), 0x406 => array(0x456), 0x407 => array(0x457),
1171
+					0x408 => array(0x458), 0x409 => array(0x459), 0x40A => array(0x45A),
1172
+					0x40B => array(0x45B), 0x40C => array(0x45C), 0x40D => array(0x45D),
1173
+					0x40E => array(0x45E), 0x40F => array(0x45F), 0x410 => array(0x430),
1174
+					0x411 => array(0x431), 0x412 => array(0x432), 0x413 => array(0x433),
1175
+					0x414 => array(0x434), 0x415 => array(0x435), 0x416 => array(0x436),
1176
+					0x417 => array(0x437), 0x418 => array(0x438), 0x419 => array(0x439),
1177
+					0x41A => array(0x43A), 0x41B => array(0x43B), 0x41C => array(0x43C),
1178
+					0x41D => array(0x43D), 0x41E => array(0x43E), 0x41F => array(0x43F),
1179
+					0x420 => array(0x440), 0x421 => array(0x441), 0x422 => array(0x442),
1180
+					0x423 => array(0x443), 0x424 => array(0x444), 0x425 => array(0x445),
1181
+					0x426 => array(0x446), 0x427 => array(0x447), 0x428 => array(0x448),
1182
+					0x429 => array(0x449), 0x42A => array(0x44A), 0x42B => array(0x44B),
1183
+					0x42C => array(0x44C), 0x42D => array(0x44D), 0x42E => array(0x44E),
1184
+					0x42F => array(0x44F), 0x460 => array(0x461), 0x462 => array(0x463),
1185
+					0x464 => array(0x465), 0x466 => array(0x467), 0x468 => array(0x469),
1186
+					0x46A => array(0x46B), 0x46C => array(0x46D), 0x46E => array(0x46F),
1187
+					0x470 => array(0x471), 0x472 => array(0x473), 0x474 => array(0x475),
1188
+					0x476 => array(0x477), 0x478 => array(0x479), 0x47A => array(0x47B),
1189
+					0x47C => array(0x47D), 0x47E => array(0x47F), 0x480 => array(0x481),
1190
+					0x48A => array(0x48B), 0x48C => array(0x48D), 0x48E => array(0x48F),
1191
+					0x490 => array(0x491), 0x492 => array(0x493), 0x494 => array(0x495),
1192
+					0x496 => array(0x497), 0x498 => array(0x499), 0x49A => array(0x49B),
1193
+					0x49C => array(0x49D), 0x49E => array(0x49F), 0x4A0 => array(0x4A1),
1194
+					0x4A2 => array(0x4A3), 0x4A4 => array(0x4A5), 0x4A6 => array(0x4A7),
1195
+					0x4A8 => array(0x4A9), 0x4AA => array(0x4AB), 0x4AC => array(0x4AD),
1196
+					0x4AE => array(0x4AF), 0x4B0 => array(0x4B1), 0x4B2 => array(0x4B3),
1197
+					0x4B4 => array(0x4B5), 0x4B6 => array(0x4B7), 0x4B8 => array(0x4B9),
1198
+					0x4BA => array(0x4BB), 0x4BC => array(0x4BD), 0x4BE => array(0x4BF),
1199
+					0x4C1 => array(0x4C2), 0x4C3 => array(0x4C4), 0x4C5 => array(0x4C6),
1200
+					0x4C7 => array(0x4C8), 0x4C9 => array(0x4CA), 0x4CB => array(0x4CC),
1201
+					0x4CD => array(0x4CE), 0x4D0 => array(0x4D1), 0x4D2 => array(0x4D3),
1202
+					0x4D4 => array(0x4D5), 0x4D6 => array(0x4D7), 0x4D8 => array(0x4D9),
1203
+					0x4DA => array(0x4DB), 0x4DC => array(0x4DD), 0x4DE => array(0x4DF),
1204
+					0x4E0 => array(0x4E1), 0x4E2 => array(0x4E3), 0x4E4 => array(0x4E5),
1205
+					0x4E6 => array(0x4E7), 0x4E8 => array(0x4E9), 0x4EA => array(0x4EB),
1206
+					0x4EC => array(0x4ED), 0x4EE => array(0x4EF), 0x4F0 => array(0x4F1),
1207
+					0x4F2 => array(0x4F3), 0x4F4 => array(0x4F5), 0x4F8 => array(0x4F9),
1208
+					0x500 => array(0x501), 0x502 => array(0x503), 0x504 => array(0x505),
1209
+					0x506 => array(0x507), 0x508 => array(0x509), 0x50A => array(0x50B),
1210
+					0x50C => array(0x50D), 0x50E => array(0x50F), 0x531 => array(0x561),
1211
+					0x532 => array(0x562), 0x533 => array(0x563), 0x534 => array(0x564),
1212
+					0x535 => array(0x565), 0x536 => array(0x566), 0x537 => array(0x567),
1213
+					0x538 => array(0x568), 0x539 => array(0x569), 0x53A => array(0x56A),
1214
+					0x53B => array(0x56B), 0x53C => array(0x56C), 0x53D => array(0x56D),
1215
+					0x53E => array(0x56E), 0x53F => array(0x56F), 0x540 => array(0x570),
1216
+					0x541 => array(0x571), 0x542 => array(0x572), 0x543 => array(0x573),
1217
+					0x544 => array(0x574), 0x545 => array(0x575), 0x546 => array(0x576),
1218
+					0x547 => array(0x577), 0x548 => array(0x578), 0x549 => array(0x579),
1219
+					0x54A => array(0x57A), 0x54B => array(0x57B), 0x54C => array(0x57C),
1220
+					0x54D => array(0x57D), 0x54E => array(0x57E), 0x54F => array(0x57F),
1221
+					0x550 => array(0x580), 0x551 => array(0x581), 0x552 => array(0x582),
1222
+					0x553 => array(0x583), 0x554 => array(0x584), 0x555 => array(0x585),
1223
+					0x556 => array(0x586), 0x587 => array(0x565, 0x582), 0xE33 => array(0xE4D, 0xE32),
1224
+					0x1E00 => array(0x1E01), 0x1E02 => array(0x1E03), 0x1E04 => array(0x1E05),
1225
+					0x1E06 => array(0x1E07), 0x1E08 => array(0x1E09), 0x1E0A => array(0x1E0B),
1226
+					0x1E0C => array(0x1E0D), 0x1E0E => array(0x1E0F), 0x1E10 => array(0x1E11),
1227
+					0x1E12 => array(0x1E13), 0x1E14 => array(0x1E15), 0x1E16 => array(0x1E17),
1228
+					0x1E18 => array(0x1E19), 0x1E1A => array(0x1E1B), 0x1E1C => array(0x1E1D),
1229
+					0x1E1E => array(0x1E1F), 0x1E20 => array(0x1E21), 0x1E22 => array(0x1E23),
1230
+					0x1E24 => array(0x1E25), 0x1E26 => array(0x1E27), 0x1E28 => array(0x1E29),
1231
+					0x1E2A => array(0x1E2B), 0x1E2C => array(0x1E2D), 0x1E2E => array(0x1E2F),
1232
+					0x1E30 => array(0x1E31), 0x1E32 => array(0x1E33), 0x1E34 => array(0x1E35),
1233
+					0x1E36 => array(0x1E37), 0x1E38 => array(0x1E39), 0x1E3A => array(0x1E3B),
1234
+					0x1E3C => array(0x1E3D), 0x1E3E => array(0x1E3F), 0x1E40 => array(0x1E41),
1235
+					0x1E42 => array(0x1E43), 0x1E44 => array(0x1E45), 0x1E46 => array(0x1E47),
1236
+					0x1E48 => array(0x1E49), 0x1E4A => array(0x1E4B), 0x1E4C => array(0x1E4D),
1237
+					0x1E4E => array(0x1E4F), 0x1E50 => array(0x1E51), 0x1E52 => array(0x1E53),
1238
+					0x1E54 => array(0x1E55), 0x1E56 => array(0x1E57), 0x1E58 => array(0x1E59),
1239
+					0x1E5A => array(0x1E5B), 0x1E5C => array(0x1E5D), 0x1E5E => array(0x1E5F),
1240
+					0x1E60 => array(0x1E61), 0x1E62 => array(0x1E63), 0x1E64 => array(0x1E65),
1241
+					0x1E66 => array(0x1E67), 0x1E68 => array(0x1E69), 0x1E6A => array(0x1E6B),
1242
+					0x1E6C => array(0x1E6D), 0x1E6E => array(0x1E6F), 0x1E70 => array(0x1E71),
1243
+					0x1E72 => array(0x1E73), 0x1E74 => array(0x1E75), 0x1E76 => array(0x1E77),
1244
+					0x1E78 => array(0x1E79), 0x1E7A => array(0x1E7B), 0x1E7C => array(0x1E7D),
1245
+					0x1E7E => array(0x1E7F), 0x1E80 => array(0x1E81), 0x1E82 => array(0x1E83),
1246
+					0x1E84 => array(0x1E85), 0x1E86 => array(0x1E87), 0x1E88 => array(0x1E89),
1247
+					0x1E8A => array(0x1E8B), 0x1E8C => array(0x1E8D), 0x1E8E => array(0x1E8F),
1248
+					0x1E90 => array(0x1E91), 0x1E92 => array(0x1E93), 0x1E94 => array(0x1E95),
1249
+					0x1E96 => array(0x68, 0x331), 0x1E97 => array(0x74, 0x308), 0x1E98 => array(0x77, 0x30A),
1250
+					0x1E99 => array(0x79, 0x30A), 0x1E9A => array(0x61, 0x2BE), 0x1E9B => array(0x1E61),
1251
+					0x1EA0 => array(0x1EA1), 0x1EA2 => array(0x1EA3), 0x1EA4 => array(0x1EA5),
1252
+					0x1EA6 => array(0x1EA7), 0x1EA8 => array(0x1EA9), 0x1EAA => array(0x1EAB),
1253
+					0x1EAC => array(0x1EAD), 0x1EAE => array(0x1EAF), 0x1EB0 => array(0x1EB1),
1254
+					0x1EB2 => array(0x1EB3), 0x1EB4 => array(0x1EB5), 0x1EB6 => array(0x1EB7),
1255
+					0x1EB8 => array(0x1EB9), 0x1EBA => array(0x1EBB), 0x1EBC => array(0x1EBD),
1256
+					0x1EBE => array(0x1EBF), 0x1EC0 => array(0x1EC1), 0x1EC2 => array(0x1EC3),
1257
+					0x1EC4 => array(0x1EC5), 0x1EC6 => array(0x1EC7), 0x1EC8 => array(0x1EC9),
1258
+					0x1ECA => array(0x1ECB), 0x1ECC => array(0x1ECD), 0x1ECE => array(0x1ECF),
1259
+					0x1ED0 => array(0x1ED1), 0x1ED2 => array(0x1ED3), 0x1ED4 => array(0x1ED5),
1260
+					0x1ED6 => array(0x1ED7), 0x1ED8 => array(0x1ED9), 0x1EDA => array(0x1EDB),
1261
+					0x1EDC => array(0x1EDD), 0x1EDE => array(0x1EDF), 0x1EE0 => array(0x1EE1),
1262
+					0x1EE2 => array(0x1EE3), 0x1EE4 => array(0x1EE5), 0x1EE6 => array(0x1EE7),
1263
+					0x1EE8 => array(0x1EE9), 0x1EEA => array(0x1EEB), 0x1EEC => array(0x1EED),
1264
+					0x1EEE => array(0x1EEF), 0x1EF0 => array(0x1EF1), 0x1EF2 => array(0x1EF3),
1265
+					0x1EF4 => array(0x1EF5), 0x1EF6 => array(0x1EF7), 0x1EF8 => array(0x1EF9),
1266
+					0x1F08 => array(0x1F00), 0x1F09 => array(0x1F01), 0x1F0A => array(0x1F02),
1267
+					0x1F0B => array(0x1F03), 0x1F0C => array(0x1F04), 0x1F0D => array(0x1F05),
1268
+					0x1F0E => array(0x1F06), 0x1F0F => array(0x1F07), 0x1F18 => array(0x1F10),
1269
+					0x1F19 => array(0x1F11), 0x1F1A => array(0x1F12), 0x1F1B => array(0x1F13),
1270
+					0x1F1C => array(0x1F14), 0x1F1D => array(0x1F15), 0x1F28 => array(0x1F20),
1271
+					0x1F29 => array(0x1F21), 0x1F2A => array(0x1F22), 0x1F2B => array(0x1F23),
1272
+					0x1F2C => array(0x1F24), 0x1F2D => array(0x1F25), 0x1F2E => array(0x1F26),
1273
+					0x1F2F => array(0x1F27), 0x1F38 => array(0x1F30), 0x1F39 => array(0x1F31),
1274
+					0x1F3A => array(0x1F32), 0x1F3B => array(0x1F33), 0x1F3C => array(0x1F34),
1275
+					0x1F3D => array(0x1F35), 0x1F3E => array(0x1F36), 0x1F3F => array(0x1F37),
1276
+					0x1F48 => array(0x1F40), 0x1F49 => array(0x1F41), 0x1F4A => array(0x1F42),
1277
+					0x1F4B => array(0x1F43), 0x1F4C => array(0x1F44), 0x1F4D => array(0x1F45),
1278
+					0x1F50 => array(0x3C5, 0x313), 0x1F52 => array(0x3C5, 0x313, 0x300),
1279
+					0x1F54 => array(0x3C5, 0x313, 0x301), 0x1F56 => array(0x3C5, 0x313, 0x342),
1280
+					0x1F59 => array(0x1F51), 0x1F5B => array(0x1F53), 0x1F5D => array(0x1F55),
1281
+					0x1F5F => array(0x1F57), 0x1F68 => array(0x1F60), 0x1F69 => array(0x1F61),
1282
+					0x1F6A => array(0x1F62), 0x1F6B => array(0x1F63), 0x1F6C => array(0x1F64),
1283
+					0x1F6D => array(0x1F65), 0x1F6E => array(0x1F66), 0x1F6F => array(0x1F67),
1284
+					0x1F80 => array(0x1F00, 0x3B9), 0x1F81 => array(0x1F01, 0x3B9),
1285
+					0x1F82 => array(0x1F02, 0x3B9), 0x1F83 => array(0x1F03, 0x3B9),
1286
+					0x1F84 => array(0x1F04, 0x3B9), 0x1F85 => array(0x1F05, 0x3B9),
1287
+					0x1F86 => array(0x1F06, 0x3B9), 0x1F87 => array(0x1F07, 0x3B9),
1288
+					0x1F88 => array(0x1F00, 0x3B9), 0x1F89 => array(0x1F01, 0x3B9),
1289
+					0x1F8A => array(0x1F02, 0x3B9), 0x1F8B => array(0x1F03, 0x3B9),
1290
+					0x1F8C => array(0x1F04, 0x3B9), 0x1F8D => array(0x1F05, 0x3B9),
1291
+					0x1F8E => array(0x1F06, 0x3B9), 0x1F8F => array(0x1F07, 0x3B9),
1292
+					0x1F90 => array(0x1F20, 0x3B9), 0x1F91 => array(0x1F21, 0x3B9),
1293
+					0x1F92 => array(0x1F22, 0x3B9), 0x1F93 => array(0x1F23, 0x3B9),
1294
+					0x1F94 => array(0x1F24, 0x3B9), 0x1F95 => array(0x1F25, 0x3B9),
1295
+					0x1F96 => array(0x1F26, 0x3B9), 0x1F97 => array(0x1F27, 0x3B9),
1296
+					0x1F98 => array(0x1F20, 0x3B9), 0x1F99 => array(0x1F21, 0x3B9),
1297
+					0x1F9A => array(0x1F22, 0x3B9), 0x1F9B => array(0x1F23, 0x3B9),
1298
+					0x1F9C => array(0x1F24, 0x3B9), 0x1F9D => array(0x1F25, 0x3B9),
1299
+					0x1F9E => array(0x1F26, 0x3B9), 0x1F9F => array(0x1F27, 0x3B9),
1300
+					0x1FA0 => array(0x1F60, 0x3B9), 0x1FA1 => array(0x1F61, 0x3B9),
1301
+					0x1FA2 => array(0x1F62, 0x3B9), 0x1FA3 => array(0x1F63, 0x3B9),
1302
+					0x1FA4 => array(0x1F64, 0x3B9), 0x1FA5 => array(0x1F65, 0x3B9),
1303
+					0x1FA6 => array(0x1F66, 0x3B9), 0x1FA7 => array(0x1F67, 0x3B9),
1304
+					0x1FA8 => array(0x1F60, 0x3B9), 0x1FA9 => array(0x1F61, 0x3B9),
1305
+					0x1FAA => array(0x1F62, 0x3B9), 0x1FAB => array(0x1F63, 0x3B9),
1306
+					0x1FAC => array(0x1F64, 0x3B9), 0x1FAD => array(0x1F65, 0x3B9),
1307
+					0x1FAE => array(0x1F66, 0x3B9), 0x1FAF => array(0x1F67, 0x3B9),
1308
+					0x1FB2 => array(0x1F70, 0x3B9), 0x1FB3 => array(0x3B1, 0x3B9),
1309
+					0x1FB4 => array(0x3AC, 0x3B9), 0x1FB6 => array(0x3B1, 0x342),
1310
+					0x1FB7 => array(0x3B1, 0x342, 0x3B9), 0x1FB8 => array(0x1FB0),
1311
+					0x1FB9 => array(0x1FB1), 0x1FBA => array(0x1F70), 0x1FBB => array(0x1F71),
1312
+					0x1FBC => array(0x3B1, 0x3B9), 0x1FBE => array(0x3B9),
1313
+					0x1FC2 => array(0x1F74, 0x3B9), 0x1FC3 => array(0x3B7, 0x3B9),
1314
+					0x1FC4 => array(0x3AE, 0x3B9), 0x1FC6 => array(0x3B7, 0x342),
1315
+					0x1FC7 => array(0x3B7, 0x342, 0x3B9), 0x1FC8 => array(0x1F72),
1316
+					0x1FC9 => array(0x1F73), 0x1FCA => array(0x1F74), 0x1FCB => array(0x1F75),
1317
+					0x1FCC => array(0x3B7, 0x3B9), 0x1FD2 => array(0x3B9, 0x308, 0x300),
1318
+					0x1FD3 => array(0x3B9, 0x308, 0x301), 0x1FD6 => array(0x3B9, 0x342),
1319
+					0x1FD7 => array(0x3B9, 0x308, 0x342), 0x1FD8 => array(0x1FD0),
1320
+					0x1FD9 => array(0x1FD1), 0x1FDA => array(0x1F76),
1321
+					0x1FDB => array(0x1F77), 0x1FE2 => array(0x3C5, 0x308, 0x300),
1322
+					0x1FE3 => array(0x3C5, 0x308, 0x301), 0x1FE4 => array(0x3C1, 0x313),
1323
+					0x1FE6 => array(0x3C5, 0x342), 0x1FE7 => array(0x3C5, 0x308, 0x342),
1324
+					0x1FE8 => array(0x1FE0), 0x1FE9 => array(0x1FE1),
1325
+					0x1FEA => array(0x1F7A), 0x1FEB => array(0x1F7B),
1326
+					0x1FEC => array(0x1FE5), 0x1FF2 => array(0x1F7C, 0x3B9),
1327
+					0x1FF3 => array(0x3C9, 0x3B9), 0x1FF4 => array(0x3CE, 0x3B9),
1328
+					0x1FF6 => array(0x3C9, 0x342), 0x1FF7 => array(0x3C9, 0x342, 0x3B9),
1329
+					0x1FF8 => array(0x1F78), 0x1FF9 => array(0x1F79), 0x1FFA => array(0x1F7C),
1330
+					0x1FFB => array(0x1F7D), 0x1FFC => array(0x3C9, 0x3B9),
1331
+					0x20A8 => array(0x72, 0x73), 0x2102 => array(0x63), 0x2103 => array(0xB0, 0x63),
1332
+					0x2107 => array(0x25B), 0x2109 => array(0xB0, 0x66), 0x210B => array(0x68),
1333
+					0x210C => array(0x68), 0x210D => array(0x68), 0x2110 => array(0x69),
1334
+					0x2111 => array(0x69), 0x2112 => array(0x6C), 0x2115 => array(0x6E),
1335
+					0x2116 => array(0x6E, 0x6F), 0x2119 => array(0x70), 0x211A => array(0x71),
1336
+					0x211B => array(0x72), 0x211C => array(0x72), 0x211D => array(0x72),
1337
+					0x2120 => array(0x73, 0x6D), 0x2121 => array(0x74, 0x65, 0x6C),
1338
+					0x2122 => array(0x74, 0x6D), 0x2124 => array(0x7A), 0x2126 => array(0x3C9),
1339
+					0x2128 => array(0x7A), 0x212A => array(0x6B), 0x212B => array(0xE5),
1340
+					0x212C => array(0x62), 0x212D => array(0x63), 0x2130 => array(0x65),
1341
+					0x2131 => array(0x66), 0x2133 => array(0x6D), 0x213E => array(0x3B3),
1342
+					0x213F => array(0x3C0), 0x2145 => array(0x64), 0x2160 => array(0x2170),
1343
+					0x2161 => array(0x2171), 0x2162 => array(0x2172), 0x2163 => array(0x2173),
1344
+					0x2164 => array(0x2174), 0x2165 => array(0x2175), 0x2166 => array(0x2176),
1345
+					0x2167 => array(0x2177), 0x2168 => array(0x2178), 0x2169 => array(0x2179),
1346
+					0x216A => array(0x217A), 0x216B => array(0x217B), 0x216C => array(0x217C),
1347
+					0x216D => array(0x217D), 0x216E => array(0x217E), 0x216F => array(0x217F),
1348
+					0x24B6 => array(0x24D0), 0x24B7 => array(0x24D1), 0x24B8 => array(0x24D2),
1349
+					0x24B9 => array(0x24D3), 0x24BA => array(0x24D4), 0x24BB => array(0x24D5),
1350
+					0x24BC => array(0x24D6), 0x24BD => array(0x24D7), 0x24BE => array(0x24D8),
1351
+					0x24BF => array(0x24D9), 0x24C0 => array(0x24DA), 0x24C1 => array(0x24DB),
1352
+					0x24C2 => array(0x24DC), 0x24C3 => array(0x24DD), 0x24C4 => array(0x24DE),
1353
+					0x24C5 => array(0x24DF), 0x24C6 => array(0x24E0), 0x24C7 => array(0x24E1),
1354
+					0x24C8 => array(0x24E2), 0x24C9 => array(0x24E3), 0x24CA => array(0x24E4),
1355
+					0x24CB => array(0x24E5), 0x24CC => array(0x24E6), 0x24CD => array(0x24E7),
1356
+					0x24CE => array(0x24E8), 0x24CF => array(0x24E9), 0x3371 => array(0x68, 0x70, 0x61),
1357
+					0x3373 => array(0x61, 0x75), 0x3375 => array(0x6F, 0x76),
1358
+					0x3380 => array(0x70, 0x61), 0x3381 => array(0x6E, 0x61),
1359
+					0x3382 => array(0x3BC, 0x61), 0x3383 => array(0x6D, 0x61),
1360
+					0x3384 => array(0x6B, 0x61), 0x3385 => array(0x6B, 0x62),
1361
+					0x3386 => array(0x6D, 0x62), 0x3387 => array(0x67, 0x62),
1362
+					0x338A => array(0x70, 0x66), 0x338B => array(0x6E, 0x66),
1363
+					0x338C => array(0x3BC, 0x66), 0x3390 => array(0x68, 0x7A),
1364
+					0x3391 => array(0x6B, 0x68, 0x7A), 0x3392 => array(0x6D, 0x68, 0x7A),
1365
+					0x3393 => array(0x67, 0x68, 0x7A), 0x3394 => array(0x74, 0x68, 0x7A),
1366
+					0x33A9 => array(0x70, 0x61), 0x33AA => array(0x6B, 0x70, 0x61),
1367
+					0x33AB => array(0x6D, 0x70, 0x61), 0x33AC => array(0x67, 0x70, 0x61),
1368
+					0x33B4 => array(0x70, 0x76), 0x33B5 => array(0x6E, 0x76),
1369
+					0x33B6 => array(0x3BC, 0x76), 0x33B7 => array(0x6D, 0x76),
1370
+					0x33B8 => array(0x6B, 0x76), 0x33B9 => array(0x6D, 0x76),
1371
+					0x33BA => array(0x70, 0x77), 0x33BB => array(0x6E, 0x77),
1372
+					0x33BC => array(0x3BC, 0x77), 0x33BD => array(0x6D, 0x77),
1373
+					0x33BE => array(0x6B, 0x77), 0x33BF => array(0x6D, 0x77),
1374
+					0x33C0 => array(0x6B, 0x3C9), 0x33C1 => array(0x6D, 0x3C9), /*
1375 1375
                     0x33C2  => array(0x61, 0x2E, 0x6D, 0x2E), */
1376
-                    0x33C3 => array(0x62, 0x71), 0x33C6 => array(0x63, 0x2215, 0x6B, 0x67),
1377
-                    0x33C7 => array(0x63, 0x6F, 0x2E), 0x33C8 => array(0x64, 0x62),
1378
-                    0x33C9 => array(0x67, 0x79), 0x33CB => array(0x68, 0x70),
1379
-                    0x33CD => array(0x6B, 0x6B), 0x33CE => array(0x6B, 0x6D),
1380
-                    0x33D7 => array(0x70, 0x68), 0x33D9 => array(0x70, 0x70, 0x6D),
1381
-                    0x33DA => array(0x70, 0x72), 0x33DC => array(0x73, 0x76),
1382
-                    0x33DD => array(0x77, 0x62), 0xFB00 => array(0x66, 0x66),
1383
-                    0xFB01 => array(0x66, 0x69), 0xFB02 => array(0x66, 0x6C),
1384
-                    0xFB03 => array(0x66, 0x66, 0x69), 0xFB04 => array(0x66, 0x66, 0x6C),
1385
-                    0xFB05 => array(0x73, 0x74), 0xFB06 => array(0x73, 0x74),
1386
-                    0xFB13 => array(0x574, 0x576), 0xFB14 => array(0x574, 0x565),
1387
-                    0xFB15 => array(0x574, 0x56B), 0xFB16 => array(0x57E, 0x576),
1388
-                    0xFB17 => array(0x574, 0x56D), 0xFF21 => array(0xFF41),
1389
-                    0xFF22 => array(0xFF42), 0xFF23 => array(0xFF43), 0xFF24 => array(0xFF44),
1390
-                    0xFF25 => array(0xFF45), 0xFF26 => array(0xFF46), 0xFF27 => array(0xFF47),
1391
-                    0xFF28 => array(0xFF48), 0xFF29 => array(0xFF49), 0xFF2A => array(0xFF4A),
1392
-                    0xFF2B => array(0xFF4B), 0xFF2C => array(0xFF4C), 0xFF2D => array(0xFF4D),
1393
-                    0xFF2E => array(0xFF4E), 0xFF2F => array(0xFF4F), 0xFF30 => array(0xFF50),
1394
-                    0xFF31 => array(0xFF51), 0xFF32 => array(0xFF52), 0xFF33 => array(0xFF53),
1395
-                    0xFF34 => array(0xFF54), 0xFF35 => array(0xFF55), 0xFF36 => array(0xFF56),
1396
-                    0xFF37 => array(0xFF57), 0xFF38 => array(0xFF58), 0xFF39 => array(0xFF59),
1397
-                    0xFF3A => array(0xFF5A), 0x10400 => array(0x10428), 0x10401 => array(0x10429),
1398
-                    0x10402 => array(0x1042A), 0x10403 => array(0x1042B), 0x10404 => array(0x1042C),
1399
-                    0x10405 => array(0x1042D), 0x10406 => array(0x1042E), 0x10407 => array(0x1042F),
1400
-                    0x10408 => array(0x10430), 0x10409 => array(0x10431), 0x1040A => array(0x10432),
1401
-                    0x1040B => array(0x10433), 0x1040C => array(0x10434), 0x1040D => array(0x10435),
1402
-                    0x1040E => array(0x10436), 0x1040F => array(0x10437), 0x10410 => array(0x10438),
1403
-                    0x10411 => array(0x10439), 0x10412 => array(0x1043A), 0x10413 => array(0x1043B),
1404
-                    0x10414 => array(0x1043C), 0x10415 => array(0x1043D), 0x10416 => array(0x1043E),
1405
-                    0x10417 => array(0x1043F), 0x10418 => array(0x10440), 0x10419 => array(0x10441),
1406
-                    0x1041A => array(0x10442), 0x1041B => array(0x10443), 0x1041C => array(0x10444),
1407
-                    0x1041D => array(0x10445), 0x1041E => array(0x10446), 0x1041F => array(0x10447),
1408
-                    0x10420 => array(0x10448), 0x10421 => array(0x10449), 0x10422 => array(0x1044A),
1409
-                    0x10423 => array(0x1044B), 0x10424 => array(0x1044C), 0x10425 => array(0x1044D),
1410
-                    0x1D400 => array(0x61), 0x1D401 => array(0x62), 0x1D402 => array(0x63),
1411
-                    0x1D403 => array(0x64), 0x1D404 => array(0x65), 0x1D405 => array(0x66),
1412
-                    0x1D406 => array(0x67), 0x1D407 => array(0x68), 0x1D408 => array(0x69),
1413
-                    0x1D409 => array(0x6A), 0x1D40A => array(0x6B), 0x1D40B => array(0x6C),
1414
-                    0x1D40C => array(0x6D), 0x1D40D => array(0x6E), 0x1D40E => array(0x6F),
1415
-                    0x1D40F => array(0x70), 0x1D410 => array(0x71), 0x1D411 => array(0x72),
1416
-                    0x1D412 => array(0x73), 0x1D413 => array(0x74), 0x1D414 => array(0x75),
1417
-                    0x1D415 => array(0x76), 0x1D416 => array(0x77), 0x1D417 => array(0x78),
1418
-                    0x1D418 => array(0x79), 0x1D419 => array(0x7A), 0x1D434 => array(0x61),
1419
-                    0x1D435 => array(0x62), 0x1D436 => array(0x63), 0x1D437 => array(0x64),
1420
-                    0x1D438 => array(0x65), 0x1D439 => array(0x66), 0x1D43A => array(0x67),
1421
-                    0x1D43B => array(0x68), 0x1D43C => array(0x69), 0x1D43D => array(0x6A),
1422
-                    0x1D43E => array(0x6B), 0x1D43F => array(0x6C), 0x1D440 => array(0x6D),
1423
-                    0x1D441 => array(0x6E), 0x1D442 => array(0x6F), 0x1D443 => array(0x70),
1424
-                    0x1D444 => array(0x71), 0x1D445 => array(0x72), 0x1D446 => array(0x73),
1425
-                    0x1D447 => array(0x74), 0x1D448 => array(0x75), 0x1D449 => array(0x76),
1426
-                    0x1D44A => array(0x77), 0x1D44B => array(0x78), 0x1D44C => array(0x79),
1427
-                    0x1D44D => array(0x7A), 0x1D468 => array(0x61), 0x1D469 => array(0x62),
1428
-                    0x1D46A => array(0x63), 0x1D46B => array(0x64), 0x1D46C => array(0x65),
1429
-                    0x1D46D => array(0x66), 0x1D46E => array(0x67), 0x1D46F => array(0x68),
1430
-                    0x1D470 => array(0x69), 0x1D471 => array(0x6A), 0x1D472 => array(0x6B),
1431
-                    0x1D473 => array(0x6C), 0x1D474 => array(0x6D), 0x1D475 => array(0x6E),
1432
-                    0x1D476 => array(0x6F), 0x1D477 => array(0x70), 0x1D478 => array(0x71),
1433
-                    0x1D479 => array(0x72), 0x1D47A => array(0x73), 0x1D47B => array(0x74),
1434
-                    0x1D47C => array(0x75), 0x1D47D => array(0x76), 0x1D47E => array(0x77),
1435
-                    0x1D47F => array(0x78), 0x1D480 => array(0x79), 0x1D481 => array(0x7A),
1436
-                    0x1D49C => array(0x61), 0x1D49E => array(0x63), 0x1D49F => array(0x64),
1437
-                    0x1D4A2 => array(0x67), 0x1D4A5 => array(0x6A), 0x1D4A6 => array(0x6B),
1438
-                    0x1D4A9 => array(0x6E), 0x1D4AA => array(0x6F), 0x1D4AB => array(0x70),
1439
-                    0x1D4AC => array(0x71), 0x1D4AE => array(0x73), 0x1D4AF => array(0x74),
1440
-                    0x1D4B0 => array(0x75), 0x1D4B1 => array(0x76), 0x1D4B2 => array(0x77),
1441
-                    0x1D4B3 => array(0x78), 0x1D4B4 => array(0x79), 0x1D4B5 => array(0x7A),
1442
-                    0x1D4D0 => array(0x61), 0x1D4D1 => array(0x62), 0x1D4D2 => array(0x63),
1443
-                    0x1D4D3 => array(0x64), 0x1D4D4 => array(0x65), 0x1D4D5 => array(0x66),
1444
-                    0x1D4D6 => array(0x67), 0x1D4D7 => array(0x68), 0x1D4D8 => array(0x69),
1445
-                    0x1D4D9 => array(0x6A), 0x1D4DA => array(0x6B), 0x1D4DB => array(0x6C),
1446
-                    0x1D4DC => array(0x6D), 0x1D4DD => array(0x6E), 0x1D4DE => array(0x6F),
1447
-                    0x1D4DF => array(0x70), 0x1D4E0 => array(0x71), 0x1D4E1 => array(0x72),
1448
-                    0x1D4E2 => array(0x73), 0x1D4E3 => array(0x74), 0x1D4E4 => array(0x75),
1449
-                    0x1D4E5 => array(0x76), 0x1D4E6 => array(0x77), 0x1D4E7 => array(0x78),
1450
-                    0x1D4E8 => array(0x79), 0x1D4E9 => array(0x7A), 0x1D504 => array(0x61),
1451
-                    0x1D505 => array(0x62), 0x1D507 => array(0x64), 0x1D508 => array(0x65),
1452
-                    0x1D509 => array(0x66), 0x1D50A => array(0x67), 0x1D50D => array(0x6A),
1453
-                    0x1D50E => array(0x6B), 0x1D50F => array(0x6C), 0x1D510 => array(0x6D),
1454
-                    0x1D511 => array(0x6E), 0x1D512 => array(0x6F), 0x1D513 => array(0x70),
1455
-                    0x1D514 => array(0x71), 0x1D516 => array(0x73), 0x1D517 => array(0x74),
1456
-                    0x1D518 => array(0x75), 0x1D519 => array(0x76), 0x1D51A => array(0x77),
1457
-                    0x1D51B => array(0x78), 0x1D51C => array(0x79), 0x1D538 => array(0x61),
1458
-                    0x1D539 => array(0x62), 0x1D53B => array(0x64), 0x1D53C => array(0x65),
1459
-                    0x1D53D => array(0x66), 0x1D53E => array(0x67), 0x1D540 => array(0x69),
1460
-                    0x1D541 => array(0x6A), 0x1D542 => array(0x6B), 0x1D543 => array(0x6C),
1461
-                    0x1D544 => array(0x6D), 0x1D546 => array(0x6F), 0x1D54A => array(0x73),
1462
-                    0x1D54B => array(0x74), 0x1D54C => array(0x75), 0x1D54D => array(0x76),
1463
-                    0x1D54E => array(0x77), 0x1D54F => array(0x78), 0x1D550 => array(0x79),
1464
-                    0x1D56C => array(0x61), 0x1D56D => array(0x62), 0x1D56E => array(0x63),
1465
-                    0x1D56F => array(0x64), 0x1D570 => array(0x65), 0x1D571 => array(0x66),
1466
-                    0x1D572 => array(0x67), 0x1D573 => array(0x68), 0x1D574 => array(0x69),
1467
-                    0x1D575 => array(0x6A), 0x1D576 => array(0x6B), 0x1D577 => array(0x6C),
1468
-                    0x1D578 => array(0x6D), 0x1D579 => array(0x6E), 0x1D57A => array(0x6F),
1469
-                    0x1D57B => array(0x70), 0x1D57C => array(0x71), 0x1D57D => array(0x72),
1470
-                    0x1D57E => array(0x73), 0x1D57F => array(0x74), 0x1D580 => array(0x75),
1471
-                    0x1D581 => array(0x76), 0x1D582 => array(0x77), 0x1D583 => array(0x78),
1472
-                    0x1D584 => array(0x79), 0x1D585 => array(0x7A), 0x1D5A0 => array(0x61),
1473
-                    0x1D5A1 => array(0x62), 0x1D5A2 => array(0x63), 0x1D5A3 => array(0x64),
1474
-                    0x1D5A4 => array(0x65), 0x1D5A5 => array(0x66), 0x1D5A6 => array(0x67),
1475
-                    0x1D5A7 => array(0x68), 0x1D5A8 => array(0x69), 0x1D5A9 => array(0x6A),
1476
-                    0x1D5AA => array(0x6B), 0x1D5AB => array(0x6C), 0x1D5AC => array(0x6D),
1477
-                    0x1D5AD => array(0x6E), 0x1D5AE => array(0x6F), 0x1D5AF => array(0x70),
1478
-                    0x1D5B0 => array(0x71), 0x1D5B1 => array(0x72), 0x1D5B2 => array(0x73),
1479
-                    0x1D5B3 => array(0x74), 0x1D5B4 => array(0x75), 0x1D5B5 => array(0x76),
1480
-                    0x1D5B6 => array(0x77), 0x1D5B7 => array(0x78), 0x1D5B8 => array(0x79),
1481
-                    0x1D5B9 => array(0x7A), 0x1D5D4 => array(0x61), 0x1D5D5 => array(0x62),
1482
-                    0x1D5D6 => array(0x63), 0x1D5D7 => array(0x64), 0x1D5D8 => array(0x65),
1483
-                    0x1D5D9 => array(0x66), 0x1D5DA => array(0x67), 0x1D5DB => array(0x68),
1484
-                    0x1D5DC => array(0x69), 0x1D5DD => array(0x6A), 0x1D5DE => array(0x6B),
1485
-                    0x1D5DF => array(0x6C), 0x1D5E0 => array(0x6D), 0x1D5E1 => array(0x6E),
1486
-                    0x1D5E2 => array(0x6F), 0x1D5E3 => array(0x70), 0x1D5E4 => array(0x71),
1487
-                    0x1D5E5 => array(0x72), 0x1D5E6 => array(0x73), 0x1D5E7 => array(0x74),
1488
-                    0x1D5E8 => array(0x75), 0x1D5E9 => array(0x76), 0x1D5EA => array(0x77),
1489
-                    0x1D5EB => array(0x78), 0x1D5EC => array(0x79), 0x1D5ED => array(0x7A),
1490
-                    0x1D608 => array(0x61), 0x1D609 => array(0x62), 0x1D60A => array(0x63),
1491
-                    0x1D60B => array(0x64), 0x1D60C => array(0x65), 0x1D60D => array(0x66),
1492
-                    0x1D60E => array(0x67), 0x1D60F => array(0x68), 0x1D610 => array(0x69),
1493
-                    0x1D611 => array(0x6A), 0x1D612 => array(0x6B), 0x1D613 => array(0x6C),
1494
-                    0x1D614 => array(0x6D), 0x1D615 => array(0x6E), 0x1D616 => array(0x6F),
1495
-                    0x1D617 => array(0x70), 0x1D618 => array(0x71), 0x1D619 => array(0x72),
1496
-                    0x1D61A => array(0x73), 0x1D61B => array(0x74), 0x1D61C => array(0x75),
1497
-                    0x1D61D => array(0x76), 0x1D61E => array(0x77), 0x1D61F => array(0x78),
1498
-                    0x1D620 => array(0x79), 0x1D621 => array(0x7A), 0x1D63C => array(0x61),
1499
-                    0x1D63D => array(0x62), 0x1D63E => array(0x63), 0x1D63F => array(0x64),
1500
-                    0x1D640 => array(0x65), 0x1D641 => array(0x66), 0x1D642 => array(0x67),
1501
-                    0x1D643 => array(0x68), 0x1D644 => array(0x69), 0x1D645 => array(0x6A),
1502
-                    0x1D646 => array(0x6B), 0x1D647 => array(0x6C), 0x1D648 => array(0x6D),
1503
-                    0x1D649 => array(0x6E), 0x1D64A => array(0x6F), 0x1D64B => array(0x70),
1504
-                    0x1D64C => array(0x71), 0x1D64D => array(0x72), 0x1D64E => array(0x73),
1505
-                    0x1D64F => array(0x74), 0x1D650 => array(0x75), 0x1D651 => array(0x76),
1506
-                    0x1D652 => array(0x77), 0x1D653 => array(0x78), 0x1D654 => array(0x79),
1507
-                    0x1D655 => array(0x7A), 0x1D670 => array(0x61), 0x1D671 => array(0x62),
1508
-                    0x1D672 => array(0x63), 0x1D673 => array(0x64), 0x1D674 => array(0x65),
1509
-                    0x1D675 => array(0x66), 0x1D676 => array(0x67), 0x1D677 => array(0x68),
1510
-                    0x1D678 => array(0x69), 0x1D679 => array(0x6A), 0x1D67A => array(0x6B),
1511
-                    0x1D67B => array(0x6C), 0x1D67C => array(0x6D), 0x1D67D => array(0x6E),
1512
-                    0x1D67E => array(0x6F), 0x1D67F => array(0x70), 0x1D680 => array(0x71),
1513
-                    0x1D681 => array(0x72), 0x1D682 => array(0x73), 0x1D683 => array(0x74),
1514
-                    0x1D684 => array(0x75), 0x1D685 => array(0x76), 0x1D686 => array(0x77),
1515
-                    0x1D687 => array(0x78), 0x1D688 => array(0x79), 0x1D689 => array(0x7A),
1516
-                    0x1D6A8 => array(0x3B1), 0x1D6A9 => array(0x3B2), 0x1D6AA => array(0x3B3),
1517
-                    0x1D6AB => array(0x3B4), 0x1D6AC => array(0x3B5), 0x1D6AD => array(0x3B6),
1518
-                    0x1D6AE => array(0x3B7), 0x1D6AF => array(0x3B8), 0x1D6B0 => array(0x3B9),
1519
-                    0x1D6B1 => array(0x3BA), 0x1D6B2 => array(0x3BB), 0x1D6B3 => array(0x3BC),
1520
-                    0x1D6B4 => array(0x3BD), 0x1D6B5 => array(0x3BE), 0x1D6B6 => array(0x3BF),
1521
-                    0x1D6B7 => array(0x3C0), 0x1D6B8 => array(0x3C1), 0x1D6B9 => array(0x3B8),
1522
-                    0x1D6BA => array(0x3C3), 0x1D6BB => array(0x3C4), 0x1D6BC => array(0x3C5),
1523
-                    0x1D6BD => array(0x3C6), 0x1D6BE => array(0x3C7), 0x1D6BF => array(0x3C8),
1524
-                    0x1D6C0 => array(0x3C9), 0x1D6D3 => array(0x3C3), 0x1D6E2 => array(0x3B1),
1525
-                    0x1D6E3 => array(0x3B2), 0x1D6E4 => array(0x3B3), 0x1D6E5 => array(0x3B4),
1526
-                    0x1D6E6 => array(0x3B5), 0x1D6E7 => array(0x3B6), 0x1D6E8 => array(0x3B7),
1527
-                    0x1D6E9 => array(0x3B8), 0x1D6EA => array(0x3B9), 0x1D6EB => array(0x3BA),
1528
-                    0x1D6EC => array(0x3BB), 0x1D6ED => array(0x3BC), 0x1D6EE => array(0x3BD),
1529
-                    0x1D6EF => array(0x3BE), 0x1D6F0 => array(0x3BF), 0x1D6F1 => array(0x3C0),
1530
-                    0x1D6F2 => array(0x3C1), 0x1D6F3 => array(0x3B8), 0x1D6F4 => array(0x3C3),
1531
-                    0x1D6F5 => array(0x3C4), 0x1D6F6 => array(0x3C5), 0x1D6F7 => array(0x3C6),
1532
-                    0x1D6F8 => array(0x3C7), 0x1D6F9 => array(0x3C8), 0x1D6FA => array(0x3C9),
1533
-                    0x1D70D => array(0x3C3), 0x1D71C => array(0x3B1), 0x1D71D => array(0x3B2),
1534
-                    0x1D71E => array(0x3B3), 0x1D71F => array(0x3B4), 0x1D720 => array(0x3B5),
1535
-                    0x1D721 => array(0x3B6), 0x1D722 => array(0x3B7), 0x1D723 => array(0x3B8),
1536
-                    0x1D724 => array(0x3B9), 0x1D725 => array(0x3BA), 0x1D726 => array(0x3BB),
1537
-                    0x1D727 => array(0x3BC), 0x1D728 => array(0x3BD), 0x1D729 => array(0x3BE),
1538
-                    0x1D72A => array(0x3BF), 0x1D72B => array(0x3C0), 0x1D72C => array(0x3C1),
1539
-                    0x1D72D => array(0x3B8), 0x1D72E => array(0x3C3), 0x1D72F => array(0x3C4),
1540
-                    0x1D730 => array(0x3C5), 0x1D731 => array(0x3C6), 0x1D732 => array(0x3C7),
1541
-                    0x1D733 => array(0x3C8), 0x1D734 => array(0x3C9), 0x1D747 => array(0x3C3),
1542
-                    0x1D756 => array(0x3B1), 0x1D757 => array(0x3B2), 0x1D758 => array(0x3B3),
1543
-                    0x1D759 => array(0x3B4), 0x1D75A => array(0x3B5), 0x1D75B => array(0x3B6),
1544
-                    0x1D75C => array(0x3B7), 0x1D75D => array(0x3B8), 0x1D75E => array(0x3B9),
1545
-                    0x1D75F => array(0x3BA), 0x1D760 => array(0x3BB), 0x1D761 => array(0x3BC),
1546
-                    0x1D762 => array(0x3BD), 0x1D763 => array(0x3BE), 0x1D764 => array(0x3BF),
1547
-                    0x1D765 => array(0x3C0), 0x1D766 => array(0x3C1), 0x1D767 => array(0x3B8),
1548
-                    0x1D768 => array(0x3C3), 0x1D769 => array(0x3C4), 0x1D76A => array(0x3C5),
1549
-                    0x1D76B => array(0x3C6), 0x1D76C => array(0x3C7), 0x1D76D => array(0x3C8),
1550
-                    0x1D76E => array(0x3C9), 0x1D781 => array(0x3C3), 0x1D790 => array(0x3B1),
1551
-                    0x1D791 => array(0x3B2), 0x1D792 => array(0x3B3), 0x1D793 => array(0x3B4),
1552
-                    0x1D794 => array(0x3B5), 0x1D795 => array(0x3B6), 0x1D796 => array(0x3B7),
1553
-                    0x1D797 => array(0x3B8), 0x1D798 => array(0x3B9), 0x1D799 => array(0x3BA),
1554
-                    0x1D79A => array(0x3BB), 0x1D79B => array(0x3BC), 0x1D79C => array(0x3BD),
1555
-                    0x1D79D => array(0x3BE), 0x1D79E => array(0x3BF), 0x1D79F => array(0x3C0),
1556
-                    0x1D7A0 => array(0x3C1), 0x1D7A1 => array(0x3B8), 0x1D7A2 => array(0x3C3),
1557
-                    0x1D7A3 => array(0x3C4), 0x1D7A4 => array(0x3C5), 0x1D7A5 => array(0x3C6),
1558
-                    0x1D7A6 => array(0x3C7), 0x1D7A7 => array(0x3C8), 0x1D7A8 => array(0x3C9),
1559
-                    0x1D7BB => array(0x3C3), 0x3F9 => array(0x3C3), 0x1D2C => array(0x61),
1560
-                    0x1D2D => array(0xE6), 0x1D2E => array(0x62), 0x1D30 => array(0x64),
1561
-                    0x1D31 => array(0x65), 0x1D32 => array(0x1DD), 0x1D33 => array(0x67),
1562
-                    0x1D34 => array(0x68), 0x1D35 => array(0x69), 0x1D36 => array(0x6A),
1563
-                    0x1D37 => array(0x6B), 0x1D38 => array(0x6C), 0x1D39 => array(0x6D),
1564
-                    0x1D3A => array(0x6E), 0x1D3C => array(0x6F), 0x1D3D => array(0x223),
1565
-                    0x1D3E => array(0x70), 0x1D3F => array(0x72), 0x1D40 => array(0x74),
1566
-                    0x1D41 => array(0x75), 0x1D42 => array(0x77), 0x213B => array(0x66, 0x61, 0x78),
1567
-                    0x3250 => array(0x70, 0x74, 0x65), 0x32CC => array(0x68, 0x67),
1568
-                    0x32CE => array(0x65, 0x76), 0x32CF => array(0x6C, 0x74, 0x64),
1569
-                    0x337A => array(0x69, 0x75), 0x33DE => array(0x76, 0x2215, 0x6D),
1570
-                    0x33DF => array(0x61, 0x2215, 0x6D)
1571
-            ),
1572
-            'replacemaps' => array(0x41 => array(0x61), 0x42 => array(0x62), 0x43 => array(0x63),
1573
-                    0x44 => array(0x64), 0x45 => array(0x65), 0x46 => array(0x66),
1574
-                    0x47 => array(0x67), 0x48 => array(0x68), 0x49 => array(0x69),
1575
-                    0x4A => array(0x6A), 0x4B => array(0x6B), 0x4C => array(0x6C),
1576
-                    0x4D => array(0x6D), 0x4E => array(0x6E), 0x4F => array(0x6F),
1577
-                    0x50 => array(0x70), 0x51 => array(0x71), 0x52 => array(0x72),
1578
-                    0x53 => array(0x73), 0x54 => array(0x74), 0x55 => array(0x75),
1579
-                    0x56 => array(0x76), 0x57 => array(0x77), 0x58 => array(0x78),
1580
-                    0x59 => array(0x79), 0x5A => array(0x7A), 0xAA => array(0x61),
1581
-                    0xB2 => array(0x32), 0xB3 => array(0x33), 0xB5 => array(0x3BC),
1582
-                    0xB9 => array(0x31), 0xBA => array(0x6F), 0xBC => array(0x31, 0x2044, 0x34),
1583
-                    0xBD => array(0x31, 0x2044, 0x32), 0xBE => array(0x33, 0x2044, 0x34), 0xC0 => array(0xE0),
1584
-                    0xC1 => array(0xE1), 0xC2 => array(0xE2), 0xC3 => array(0xE3),
1585
-                    0xC4 => array(0xE4), 0xC5 => array(0xE5), 0xC6 => array(0xE6),
1586
-                    0xC7 => array(0xE7), 0xC8 => array(0xE8), 0xC9 => array(0xE9),
1587
-                    0xCA => array(0xEA), 0xCB => array(0xEB), 0xCC => array(0xEC),
1588
-                    0xCD => array(0xED), 0xCE => array(0xEE), 0xCF => array(0xEF),
1589
-                    0xD0 => array(0xF0), 0xD1 => array(0xF1), 0xD2 => array(0xF2),
1590
-                    0xD3 => array(0xF3), 0xD4 => array(0xF4), 0xD5 => array(0xF5),
1591
-                    0xD6 => array(0xF6), 0xD8 => array(0xF8), 0xD9 => array(0xF9),
1592
-                    0xDA => array(0xFA), 0xDB => array(0xFB), 0xDC => array(0xFC),
1593
-                    0xDD => array(0xFD), 0xDE => array(0xFE), 0x100 => array(0x101),
1594
-                    0x102 => array(0x103), 0x104 => array(0x105), 0x106 => array(0x107),
1595
-                    0x108 => array(0x109), 0x10A => array(0x10B), 0x10C => array(0x10D),
1596
-                    0x10E => array(0x10F), 0x110 => array(0x111), 0x112 => array(0x113),
1597
-                    0x114 => array(0x115), 0x116 => array(0x117), 0x118 => array(0x119),
1598
-                    0x11A => array(0x11B), 0x11C => array(0x11D), 0x11E => array(0x11F),
1599
-                    0x120 => array(0x121), 0x122 => array(0x123), 0x124 => array(0x125),
1600
-                    0x126 => array(0x127), 0x128 => array(0x129), 0x12A => array(0x12B),
1601
-                    0x12C => array(0x12D), 0x12E => array(0x12F), 0x130 => array(0x69, 0x307),
1602
-                    0x132 => array(0x69, 0x6A), 0x133 => array(0x69, 0x6A), 0x134 => array(0x135),
1603
-                    0x136 => array(0x137), 0x139 => array(0x13A), 0x13B => array(0x13C),
1604
-                    0x13D => array(0x13E), 0x13F => array(0x6C, 0xB7), 0x140 => array(0x6C, 0xB7),
1605
-                    0x141 => array(0x142), 0x143 => array(0x144), 0x145 => array(0x146),
1606
-                    0x147 => array(0x148), 0x149 => array(0x2BC, 0x6E), 0x14A => array(0x14B),
1607
-                    0x14C => array(0x14D), 0x14E => array(0x14F), 0x150 => array(0x151),
1608
-                    0x152 => array(0x153), 0x154 => array(0x155), 0x156 => array(0x157),
1609
-                    0x158 => array(0x159), 0x15A => array(0x15B), 0x15C => array(0x15D),
1610
-                    0x15E => array(0x15F), 0x160 => array(0x161), 0x162 => array(0x163),
1611
-                    0x164 => array(0x165), 0x166 => array(0x167), 0x168 => array(0x169),
1612
-                    0x16A => array(0x16B), 0x16C => array(0x16D), 0x16E => array(0x16F),
1613
-                    0x170 => array(0x171), 0x172 => array(0x173), 0x174 => array(0x175),
1614
-                    0x176 => array(0x177), 0x178 => array(0xFF), 0x179 => array(0x17A),
1615
-                    0x17B => array(0x17C), 0x17D => array(0x17E), 0x17F => array(0x73),
1616
-                    0x181 => array(0x253), 0x182 => array(0x183), 0x184 => array(0x185),
1617
-                    0x186 => array(0x254), 0x187 => array(0x188), 0x189 => array(0x256),
1618
-                    0x18A => array(0x257), 0x18B => array(0x18C), 0x18E => array(0x1DD),
1619
-                    0x18F => array(0x259), 0x190 => array(0x25B), 0x191 => array(0x192),
1620
-                    0x193 => array(0x260), 0x194 => array(0x263), 0x196 => array(0x269),
1621
-                    0x197 => array(0x268), 0x198 => array(0x199), 0x19C => array(0x26F),
1622
-                    0x19D => array(0x272), 0x19F => array(0x275), 0x1A0 => array(0x1A1),
1623
-                    0x1A2 => array(0x1A3), 0x1A4 => array(0x1A5), 0x1A6 => array(0x280),
1624
-                    0x1A7 => array(0x1A8), 0x1A9 => array(0x283), 0x1AC => array(0x1AD),
1625
-                    0x1AE => array(0x288), 0x1AF => array(0x1B0), 0x1B1 => array(0x28A),
1626
-                    0x1B2 => array(0x28B), 0x1B3 => array(0x1B4), 0x1B5 => array(0x1B6),
1627
-                    0x1B7 => array(0x292), 0x1B8 => array(0x1B9), 0x1BC => array(0x1BD),
1628
-                    0x1C4 => array(0x64, 0x17E), 0x1C5 => array(0x64, 0x17E), 0x1C6 => array(0x64, 0x17E),
1629
-                    0x1C7 => array(0x6C, 0x6A), 0x1C8 => array(0x6C, 0x6A), 0x1C9 => array(0x6C, 0x6A),
1630
-                    0x1CA => array(0x6E, 0x6A), 0x1CB => array(0x6E, 0x6A), 0x1CC => array(0x6E, 0x6A),
1631
-                    0x1CD => array(0x1CE), 0x1CF => array(0x1D0), 0x1D1 => array(0x1D2),
1632
-                    0x1D3 => array(0x1D4), 0x1D5 => array(0x1D6), 0x1D7 => array(0x1D8),
1633
-                    0x1D9 => array(0x1DA), 0x1DB => array(0x1DC), 0x1DE => array(0x1DF),
1634
-                    0x1E0 => array(0x1E1), 0x1E2 => array(0x1E3), 0x1E4 => array(0x1E5),
1635
-                    0x1E6 => array(0x1E7), 0x1E8 => array(0x1E9), 0x1EA => array(0x1EB),
1636
-                    0x1EC => array(0x1ED), 0x1EE => array(0x1EF), 0x1F1 => array(0x64, 0x7A),
1637
-                    0x1F2 => array(0x64, 0x7A), 0x1F3 => array(0x64, 0x7A), 0x1F4 => array(0x1F5),
1638
-                    0x1F6 => array(0x195), 0x1F7 => array(0x1BF), 0x1F8 => array(0x1F9),
1639
-                    0x1FA => array(0x1FB), 0x1FC => array(0x1FD), 0x1FE => array(0x1FF),
1640
-                    0x200 => array(0x201), 0x202 => array(0x203), 0x204 => array(0x205),
1641
-                    0x206 => array(0x207), 0x208 => array(0x209), 0x20A => array(0x20B),
1642
-                    0x20C => array(0x20D), 0x20E => array(0x20F), 0x210 => array(0x211),
1643
-                    0x212 => array(0x213), 0x214 => array(0x215), 0x216 => array(0x217),
1644
-                    0x218 => array(0x219), 0x21A => array(0x21B), 0x21C => array(0x21D),
1645
-                    0x21E => array(0x21F), 0x220 => array(0x19E), 0x222 => array(0x223),
1646
-                    0x224 => array(0x225), 0x226 => array(0x227), 0x228 => array(0x229),
1647
-                    0x22A => array(0x22B), 0x22C => array(0x22D), 0x22E => array(0x22F),
1648
-                    0x230 => array(0x231), 0x232 => array(0x233), 0x23A => array(0x2C65),
1649
-                    0x23B => array(0x23C), 0x23D => array(0x19A), 0x23E => array(0x2C66),
1650
-                    0x241 => array(0x242), 0x243 => array(0x180), 0x244 => array(0x289),
1651
-                    0x245 => array(0x28C), 0x246 => array(0x247), 0x248 => array(0x249),
1652
-                    0x24A => array(0x24B), 0x24C => array(0x24D), 0x24E => array(0x24F),
1653
-                    0x2B0 => array(0x68), 0x2B1 => array(0x266), 0x2B2 => array(0x6A),
1654
-                    0x2B3 => array(0x72), 0x2B4 => array(0x279), 0x2B5 => array(0x27B),
1655
-                    0x2B6 => array(0x281), 0x2B7 => array(0x77), 0x2B8 => array(0x79),
1656
-                    0x2E0 => array(0x263), 0x2E1 => array(0x6C), 0x2E2 => array(0x73),
1657
-                    0x2E3 => array(0x78), 0x2E4 => array(0x295), 0x340 => array(0x300),
1658
-                    0x341 => array(0x301), 0x343 => array(0x313), 0x344 => array(0x308, 0x301),
1659
-                    0x345 => array(0x3B9), 0x370 => array(0x371), 0x372 => array(0x373),
1660
-                    0x374 => array(0x2B9), 0x376 => array(0x377), 0x37F => array(0x3F3),
1661
-                    0x386 => array(0x3AC), 0x387 => array(0xB7), 0x388 => array(0x3AD),
1662
-                    0x389 => array(0x3AE), 0x38A => array(0x3AF), 0x38C => array(0x3CC),
1663
-                    0x38E => array(0x3CD), 0x38F => array(0x3CE), 0x391 => array(0x3B1),
1664
-                    0x392 => array(0x3B2), 0x393 => array(0x3B3), 0x394 => array(0x3B4),
1665
-                    0x395 => array(0x3B5), 0x396 => array(0x3B6), 0x397 => array(0x3B7),
1666
-                    0x398 => array(0x3B8), 0x399 => array(0x3B9), 0x39A => array(0x3BA),
1667
-                    0x39B => array(0x3BB), 0x39C => array(0x3BC), 0x39D => array(0x3BD),
1668
-                    0x39E => array(0x3BE), 0x39F => array(0x3BF), 0x3A0 => array(0x3C0),
1669
-                    0x3A1 => array(0x3C1), 0x3A3 => array(0x3C3), 0x3A4 => array(0x3C4),
1670
-                    0x3A5 => array(0x3C5), 0x3A6 => array(0x3C6), 0x3A7 => array(0x3C7),
1671
-                    0x3A8 => array(0x3C8), 0x3A9 => array(0x3C9), 0x3AA => array(0x3CA),
1672
-                    0x3AB => array(0x3CB), 0x3CF => array(0x3D7), 0x3D0 => array(0x3B2),
1673
-                    0x3D1 => array(0x3B8), 0x3D2 => array(0x3C5), 0x3D3 => array(0x3CD),
1674
-                    0x3D4 => array(0x3CB), 0x3D5 => array(0x3C6), 0x3D6 => array(0x3C0),
1675
-                    0x3D8 => array(0x3D9), 0x3DA => array(0x3DB), 0x3DC => array(0x3DD),
1676
-                    0x3DE => array(0x3DF), 0x3E0 => array(0x3E1), 0x3E2 => array(0x3E3),
1677
-                    0x3E4 => array(0x3E5), 0x3E6 => array(0x3E7), 0x3E8 => array(0x3E9),
1678
-                    0x3EA => array(0x3EB), 0x3EC => array(0x3ED), 0x3EE => array(0x3EF),
1679
-                    0x3F0 => array(0x3BA), 0x3F1 => array(0x3C1), 0x3F2 => array(0x3C3),
1680
-                    0x3F4 => array(0x3B8), 0x3F5 => array(0x3B5), 0x3F7 => array(0x3F8),
1681
-                    0x3F9 => array(0x3C3), 0x3FA => array(0x3FB), 0x3FD => array(0x37B),
1682
-                    0x3FE => array(0x37C), 0x3FF => array(0x37D), 0x400 => array(0x450),
1683
-                    0x401 => array(0x451), 0x402 => array(0x452), 0x403 => array(0x453),
1684
-                    0x404 => array(0x454), 0x405 => array(0x455), 0x406 => array(0x456),
1685
-                    0x407 => array(0x457), 0x408 => array(0x458), 0x409 => array(0x459),
1686
-                    0x40A => array(0x45A), 0x40B => array(0x45B), 0x40C => array(0x45C),
1687
-                    0x40D => array(0x45D), 0x40E => array(0x45E), 0x40F => array(0x45F),
1688
-                    0x410 => array(0x430), 0x411 => array(0x431), 0x412 => array(0x432),
1689
-                    0x413 => array(0x433), 0x414 => array(0x434), 0x415 => array(0x435),
1690
-                    0x416 => array(0x436), 0x417 => array(0x437), 0x418 => array(0x438),
1691
-                    0x419 => array(0x439), 0x41A => array(0x43A), 0x41B => array(0x43B),
1692
-                    0x41C => array(0x43C), 0x41D => array(0x43D), 0x41E => array(0x43E),
1693
-                    0x41F => array(0x43F), 0x420 => array(0x440), 0x421 => array(0x441),
1694
-                    0x422 => array(0x442), 0x423 => array(0x443), 0x424 => array(0x444),
1695
-                    0x425 => array(0x445), 0x426 => array(0x446), 0x427 => array(0x447),
1696
-                    0x428 => array(0x448), 0x429 => array(0x449), 0x42A => array(0x44A),
1697
-                    0x42B => array(0x44B), 0x42C => array(0x44C), 0x42D => array(0x44D),
1698
-                    0x42E => array(0x44E), 0x42F => array(0x44F), 0x460 => array(0x461),
1699
-                    0x462 => array(0x463), 0x464 => array(0x465), 0x466 => array(0x467),
1700
-                    0x468 => array(0x469), 0x46A => array(0x46B), 0x46C => array(0x46D),
1701
-                    0x46E => array(0x46F), 0x470 => array(0x471), 0x472 => array(0x473),
1702
-                    0x474 => array(0x475), 0x476 => array(0x477), 0x478 => array(0x479),
1703
-                    0x47A => array(0x47B), 0x47C => array(0x47D), 0x47E => array(0x47F),
1704
-                    0x480 => array(0x481), 0x48A => array(0x48B), 0x48C => array(0x48D),
1705
-                    0x48E => array(0x48F), 0x490 => array(0x491), 0x492 => array(0x493),
1706
-                    0x494 => array(0x495), 0x496 => array(0x497), 0x498 => array(0x499),
1707
-                    0x49A => array(0x49B), 0x49C => array(0x49D), 0x49E => array(0x49F),
1708
-                    0x4A0 => array(0x4A1), 0x4A2 => array(0x4A3), 0x4A4 => array(0x4A5),
1709
-                    0x4A6 => array(0x4A7), 0x4A8 => array(0x4A9), 0x4AA => array(0x4AB),
1710
-                    0x4AC => array(0x4AD), 0x4AE => array(0x4AF), 0x4B0 => array(0x4B1),
1711
-                    0x4B2 => array(0x4B3), 0x4B4 => array(0x4B5), 0x4B6 => array(0x4B7),
1712
-                    0x4B8 => array(0x4B9), 0x4BA => array(0x4BB), 0x4BC => array(0x4BD),
1713
-                    0x4BE => array(0x4BF), 0x4C1 => array(0x4C2), 0x4C3 => array(0x4C4),
1714
-                    0x4C5 => array(0x4C6), 0x4C7 => array(0x4C8), 0x4C9 => array(0x4CA),
1715
-                    0x4CB => array(0x4CC), 0x4CD => array(0x4CE), 0x4D0 => array(0x4D1),
1716
-                    0x4D2 => array(0x4D3), 0x4D4 => array(0x4D5), 0x4D6 => array(0x4D7),
1717
-                    0x4D8 => array(0x4D9), 0x4DA => array(0x4DB), 0x4DC => array(0x4DD),
1718
-                    0x4DE => array(0x4DF), 0x4E0 => array(0x4E1), 0x4E2 => array(0x4E3),
1719
-                    0x4E4 => array(0x4E5), 0x4E6 => array(0x4E7), 0x4E8 => array(0x4E9),
1720
-                    0x4EA => array(0x4EB), 0x4EC => array(0x4ED), 0x4EE => array(0x4EF),
1721
-                    0x4F0 => array(0x4F1), 0x4F2 => array(0x4F3), 0x4F4 => array(0x4F5),
1722
-                    0x4F6 => array(0x4F7), 0x4F8 => array(0x4F9), 0x4FA => array(0x4FB),
1723
-                    0x4FC => array(0x4FD), 0x4FE => array(0x4FF), 0x500 => array(0x501),
1724
-                    0x502 => array(0x503), 0x504 => array(0x505), 0x506 => array(0x507),
1725
-                    0x508 => array(0x509), 0x50A => array(0x50B), 0x50C => array(0x50D),
1726
-                    0x50E => array(0x50F), 0x510 => array(0x511), 0x512 => array(0x513),
1727
-                    0x514 => array(0x515), 0x516 => array(0x517), 0x518 => array(0x519),
1728
-                    0x51A => array(0x51B), 0x51C => array(0x51D), 0x51E => array(0x51F),
1729
-                    0x520 => array(0x521), 0x522 => array(0x523), 0x524 => array(0x525),
1730
-                    0x526 => array(0x527), 0x528 => array(0x529), 0x52A => array(0x52B),
1731
-                    0x52C => array(0x52D), 0x52E => array(0x52F), 0x531 => array(0x561),
1732
-                    0x532 => array(0x562), 0x533 => array(0x563), 0x534 => array(0x564),
1733
-                    0x535 => array(0x565), 0x536 => array(0x566), 0x537 => array(0x567),
1734
-                    0x538 => array(0x568), 0x539 => array(0x569), 0x53A => array(0x56A),
1735
-                    0x53B => array(0x56B), 0x53C => array(0x56C), 0x53D => array(0x56D),
1736
-                    0x53E => array(0x56E), 0x53F => array(0x56F), 0x540 => array(0x570),
1737
-                    0x541 => array(0x571), 0x542 => array(0x572), 0x543 => array(0x573),
1738
-                    0x544 => array(0x574), 0x545 => array(0x575), 0x546 => array(0x576),
1739
-                    0x547 => array(0x577), 0x548 => array(0x578), 0x549 => array(0x579),
1740
-                    0x54A => array(0x57A), 0x54B => array(0x57B), 0x54C => array(0x57C),
1741
-                    0x54D => array(0x57D), 0x54E => array(0x57E), 0x54F => array(0x57F),
1742
-                    0x550 => array(0x580), 0x551 => array(0x581), 0x552 => array(0x582),
1743
-                    0x553 => array(0x583), 0x554 => array(0x584), 0x555 => array(0x585),
1744
-                    0x556 => array(0x586), 0x587 => array(0x565, 0x582), 0x675 => array(0x627, 0x674),
1745
-                    0x676 => array(0x648, 0x674), 0x677 => array(0x6C7, 0x674), 0x678 => array(0x64A, 0x674),
1746
-                    0x958 => array(0x915, 0x93C), 0x959 => array(0x916, 0x93C), 0x95A => array(0x917, 0x93C),
1747
-                    0x95B => array(0x91C, 0x93C), 0x95C => array(0x921, 0x93C), 0x95D => array(0x922, 0x93C),
1748
-                    0x95E => array(0x92B, 0x93C), 0x95F => array(0x92F, 0x93C), 0x9DC => array(0x9A1, 0x9BC),
1749
-                    0x9DD => array(0x9A2, 0x9BC), 0x9DF => array(0x9AF, 0x9BC), 0xA33 => array(0xA32, 0xA3C),
1750
-                    0xA36 => array(0xA38, 0xA3C), 0xA59 => array(0xA16, 0xA3C), 0xA5A => array(0xA17, 0xA3C),
1751
-                    0xA5B => array(0xA1C, 0xA3C), 0xA5E => array(0xA2B, 0xA3C), 0xB5C => array(0xB21, 0xB3C),
1752
-                    0xB5D => array(0xB22, 0xB3C), 0xE33 => array(0xE4D, 0xE32), 0xEB3 => array(0xECD, 0xEB2),
1753
-                    0xEDC => array(0xEAB, 0xE99), 0xEDD => array(0xEAB, 0xEA1), 0xF0C => array(0xF0B),
1754
-                    0xF43 => array(0xF42, 0xFB7), 0xF4D => array(0xF4C, 0xFB7), 0xF52 => array(0xF51, 0xFB7),
1755
-                    0xF57 => array(0xF56, 0xFB7), 0xF5C => array(0xF5B, 0xFB7), 0xF69 => array(0xF40, 0xFB5),
1756
-                    0xF73 => array(0xF71, 0xF72), 0xF75 => array(0xF71, 0xF74), 0xF76 => array(0xFB2, 0xF80),
1757
-                    0xF77 => array(0xFB2, 0xF71, 0xF80), 0xF78 => array(0xFB3, 0xF80), 0xF79 => array(0xFB3, 0xF71, 0xF80),
1758
-                    0xF81 => array(0xF71, 0xF80), 0xF93 => array(0xF92, 0xFB7), 0xF9D => array(0xF9C, 0xFB7),
1759
-                    0xFA2 => array(0xFA1, 0xFB7), 0xFA7 => array(0xFA6, 0xFB7), 0xFAC => array(0xFAB, 0xFB7),
1760
-                    0xFB9 => array(0xF90, 0xFB5), 0x10C7 => array(0x2D27), 0x10CD => array(0x2D2D),
1761
-                    0x10FC => array(0x10DC), 0x1D2C => array(0x61), 0x1D2D => array(0xE6),
1762
-                    0x1D2E => array(0x62), 0x1D30 => array(0x64), 0x1D31 => array(0x65),
1763
-                    0x1D32 => array(0x1DD), 0x1D33 => array(0x67), 0x1D34 => array(0x68),
1764
-                    0x1D35 => array(0x69), 0x1D36 => array(0x6A), 0x1D37 => array(0x6B),
1765
-                    0x1D38 => array(0x6C), 0x1D39 => array(0x6D), 0x1D3A => array(0x6E),
1766
-                    0x1D3C => array(0x6F), 0x1D3D => array(0x223), 0x1D3E => array(0x70),
1767
-                    0x1D3F => array(0x72), 0x1D40 => array(0x74), 0x1D41 => array(0x75),
1768
-                    0x1D42 => array(0x77), 0x1D43 => array(0x61), 0x1D44 => array(0x250),
1769
-                    0x1D45 => array(0x251), 0x1D46 => array(0x1D02), 0x1D47 => array(0x62),
1770
-                    0x1D48 => array(0x64), 0x1D49 => array(0x65), 0x1D4A => array(0x259),
1771
-                    0x1D4B => array(0x25B), 0x1D4C => array(0x25C), 0x1D4D => array(0x67),
1772
-                    0x1D4F => array(0x6B), 0x1D50 => array(0x6D), 0x1D51 => array(0x14B),
1773
-                    0x1D52 => array(0x6F), 0x1D53 => array(0x254), 0x1D54 => array(0x1D16),
1774
-                    0x1D55 => array(0x1D17), 0x1D56 => array(0x70), 0x1D57 => array(0x74),
1775
-                    0x1D58 => array(0x75), 0x1D59 => array(0x1D1D), 0x1D5A => array(0x26F),
1776
-                    0x1D5B => array(0x76), 0x1D5C => array(0x1D25), 0x1D5D => array(0x3B2),
1777
-                    0x1D5E => array(0x3B3), 0x1D5F => array(0x3B4), 0x1D60 => array(0x3C6),
1778
-                    0x1D61 => array(0x3C7), 0x1D62 => array(0x69), 0x1D63 => array(0x72),
1779
-                    0x1D64 => array(0x75), 0x1D65 => array(0x76), 0x1D66 => array(0x3B2),
1780
-                    0x1D67 => array(0x3B3), 0x1D68 => array(0x3C1), 0x1D69 => array(0x3C6),
1781
-                    0x1D6A => array(0x3C7), 0x1D78 => array(0x43D), 0x1D9B => array(0x252),
1782
-                    0x1D9C => array(0x63), 0x1D9D => array(0x255), 0x1D9E => array(0xF0),
1783
-                    0x1D9F => array(0x25C), 0x1DA0 => array(0x66), 0x1DA1 => array(0x25F),
1784
-                    0x1DA2 => array(0x261), 0x1DA3 => array(0x265), 0x1DA4 => array(0x268),
1785
-                    0x1DA5 => array(0x269), 0x1DA6 => array(0x26A), 0x1DA7 => array(0x1D7B),
1786
-                    0x1DA8 => array(0x29D), 0x1DA9 => array(0x26D), 0x1DAA => array(0x1D85),
1787
-                    0x1DAB => array(0x29F), 0x1DAC => array(0x271), 0x1DAD => array(0x270),
1788
-                    0x1DAE => array(0x272), 0x1DAF => array(0x273), 0x1DB0 => array(0x274),
1789
-                    0x1DB1 => array(0x275), 0x1DB2 => array(0x278), 0x1DB3 => array(0x282),
1790
-                    0x1DB4 => array(0x283), 0x1DB5 => array(0x1AB), 0x1DB6 => array(0x289),
1791
-                    0x1DB7 => array(0x28A), 0x1DB8 => array(0x1D1C), 0x1DB9 => array(0x28B),
1792
-                    0x1DBA => array(0x28C), 0x1DBB => array(0x7A), 0x1DBC => array(0x290),
1793
-                    0x1DBD => array(0x291), 0x1DBE => array(0x292), 0x1DBF => array(0x3B8),
1794
-                    0x1E00 => array(0x1E01), 0x1E02 => array(0x1E03), 0x1E04 => array(0x1E05),
1795
-                    0x1E06 => array(0x1E07), 0x1E08 => array(0x1E09), 0x1E0A => array(0x1E0B),
1796
-                    0x1E0C => array(0x1E0D), 0x1E0E => array(0x1E0F), 0x1E10 => array(0x1E11),
1797
-                    0x1E12 => array(0x1E13), 0x1E14 => array(0x1E15), 0x1E16 => array(0x1E17),
1798
-                    0x1E18 => array(0x1E19), 0x1E1A => array(0x1E1B), 0x1E1C => array(0x1E1D),
1799
-                    0x1E1E => array(0x1E1F), 0x1E20 => array(0x1E21), 0x1E22 => array(0x1E23),
1800
-                    0x1E24 => array(0x1E25), 0x1E26 => array(0x1E27), 0x1E28 => array(0x1E29),
1801
-                    0x1E2A => array(0x1E2B), 0x1E2C => array(0x1E2D), 0x1E2E => array(0x1E2F),
1802
-                    0x1E30 => array(0x1E31), 0x1E32 => array(0x1E33), 0x1E34 => array(0x1E35),
1803
-                    0x1E36 => array(0x1E37), 0x1E38 => array(0x1E39), 0x1E3A => array(0x1E3B),
1804
-                    0x1E3C => array(0x1E3D), 0x1E3E => array(0x1E3F), 0x1E40 => array(0x1E41),
1805
-                    0x1E42 => array(0x1E43), 0x1E44 => array(0x1E45), 0x1E46 => array(0x1E47),
1806
-                    0x1E48 => array(0x1E49), 0x1E4A => array(0x1E4B), 0x1E4C => array(0x1E4D),
1807
-                    0x1E4E => array(0x1E4F), 0x1E50 => array(0x1E51), 0x1E52 => array(0x1E53),
1808
-                    0x1E54 => array(0x1E55), 0x1E56 => array(0x1E57), 0x1E58 => array(0x1E59),
1809
-                    0x1E5A => array(0x1E5B), 0x1E5C => array(0x1E5D), 0x1E5E => array(0x1E5F),
1810
-                    0x1E60 => array(0x1E61), 0x1E62 => array(0x1E63), 0x1E64 => array(0x1E65),
1811
-                    0x1E66 => array(0x1E67), 0x1E68 => array(0x1E69), 0x1E6A => array(0x1E6B),
1812
-                    0x1E6C => array(0x1E6D), 0x1E6E => array(0x1E6F), 0x1E70 => array(0x1E71),
1813
-                    0x1E72 => array(0x1E73), 0x1E74 => array(0x1E75), 0x1E76 => array(0x1E77),
1814
-                    0x1E78 => array(0x1E79), 0x1E7A => array(0x1E7B), 0x1E7C => array(0x1E7D),
1815
-                    0x1E7E => array(0x1E7F), 0x1E80 => array(0x1E81), 0x1E82 => array(0x1E83),
1816
-                    0x1E84 => array(0x1E85), 0x1E86 => array(0x1E87), 0x1E88 => array(0x1E89),
1817
-                    0x1E8A => array(0x1E8B), 0x1E8C => array(0x1E8D), 0x1E8E => array(0x1E8F),
1818
-                    0x1E90 => array(0x1E91), 0x1E92 => array(0x1E93), 0x1E94 => array(0x1E95),
1819
-                    0x1E9A => array(0x61, 0x2BE), 0x1E9B => array(0x1E61), 0x1E9E => array(0x73, 0x73),
1820
-                    0x1EA0 => array(0x1EA1), 0x1EA2 => array(0x1EA3), 0x1EA4 => array(0x1EA5),
1821
-                    0x1EA6 => array(0x1EA7), 0x1EA8 => array(0x1EA9), 0x1EAA => array(0x1EAB),
1822
-                    0x1EAC => array(0x1EAD), 0x1EAE => array(0x1EAF), 0x1EB0 => array(0x1EB1),
1823
-                    0x1EB2 => array(0x1EB3), 0x1EB4 => array(0x1EB5), 0x1EB6 => array(0x1EB7),
1824
-                    0x1EB8 => array(0x1EB9), 0x1EBA => array(0x1EBB), 0x1EBC => array(0x1EBD),
1825
-                    0x1EBE => array(0x1EBF), 0x1EC0 => array(0x1EC1), 0x1EC2 => array(0x1EC3),
1826
-                    0x1EC4 => array(0x1EC5), 0x1EC6 => array(0x1EC7), 0x1EC8 => array(0x1EC9),
1827
-                    0x1ECA => array(0x1ECB), 0x1ECC => array(0x1ECD), 0x1ECE => array(0x1ECF),
1828
-                    0x1ED0 => array(0x1ED1), 0x1ED2 => array(0x1ED3), 0x1ED4 => array(0x1ED5),
1829
-                    0x1ED6 => array(0x1ED7), 0x1ED8 => array(0x1ED9), 0x1EDA => array(0x1EDB),
1830
-                    0x1EDC => array(0x1EDD), 0x1EDE => array(0x1EDF), 0x1EE0 => array(0x1EE1),
1831
-                    0x1EE2 => array(0x1EE3), 0x1EE4 => array(0x1EE5), 0x1EE6 => array(0x1EE7),
1832
-                    0x1EE8 => array(0x1EE9), 0x1EEA => array(0x1EEB), 0x1EEC => array(0x1EED),
1833
-                    0x1EEE => array(0x1EEF), 0x1EF0 => array(0x1EF1), 0x1EF2 => array(0x1EF3),
1834
-                    0x1EF4 => array(0x1EF5), 0x1EF6 => array(0x1EF7), 0x1EF8 => array(0x1EF9),
1835
-                    0x1EFA => array(0x1EFB), 0x1EFC => array(0x1EFD), 0x1EFE => array(0x1EFF),
1836
-                    0x1F08 => array(0x1F00), 0x1F09 => array(0x1F01), 0x1F0A => array(0x1F02),
1837
-                    0x1F0B => array(0x1F03), 0x1F0C => array(0x1F04), 0x1F0D => array(0x1F05),
1838
-                    0x1F0E => array(0x1F06), 0x1F0F => array(0x1F07), 0x1F18 => array(0x1F10),
1839
-                    0x1F19 => array(0x1F11), 0x1F1A => array(0x1F12), 0x1F1B => array(0x1F13),
1840
-                    0x1F1C => array(0x1F14), 0x1F1D => array(0x1F15), 0x1F28 => array(0x1F20),
1841
-                    0x1F29 => array(0x1F21), 0x1F2A => array(0x1F22), 0x1F2B => array(0x1F23),
1842
-                    0x1F2C => array(0x1F24), 0x1F2D => array(0x1F25), 0x1F2E => array(0x1F26),
1843
-                    0x1F2F => array(0x1F27), 0x1F38 => array(0x1F30), 0x1F39 => array(0x1F31),
1844
-                    0x1F3A => array(0x1F32), 0x1F3B => array(0x1F33), 0x1F3C => array(0x1F34),
1845
-                    0x1F3D => array(0x1F35), 0x1F3E => array(0x1F36), 0x1F3F => array(0x1F37),
1846
-                    0x1F48 => array(0x1F40), 0x1F49 => array(0x1F41), 0x1F4A => array(0x1F42),
1847
-                    0x1F4B => array(0x1F43), 0x1F4C => array(0x1F44), 0x1F4D => array(0x1F45),
1848
-                    0x1F59 => array(0x1F51), 0x1F5B => array(0x1F53), 0x1F5D => array(0x1F55),
1849
-                    0x1F5F => array(0x1F57), 0x1F68 => array(0x1F60), 0x1F69 => array(0x1F61),
1850
-                    0x1F6A => array(0x1F62), 0x1F6B => array(0x1F63), 0x1F6C => array(0x1F64),
1851
-                    0x1F6D => array(0x1F65), 0x1F6E => array(0x1F66), 0x1F6F => array(0x1F67),
1852
-                    0x1F71 => array(0x3AC), 0x1F73 => array(0x3AD), 0x1F75 => array(0x3AE),
1853
-                    0x1F77 => array(0x3AF), 0x1F79 => array(0x3CC), 0x1F7B => array(0x3CD),
1854
-                    0x1F7D => array(0x3CE), 0x1F80 => array(0x1F00, 0x3B9), 0x1F81 => array(0x1F01, 0x3B9),
1855
-                    0x1F82 => array(0x1F02, 0x3B9), 0x1F83 => array(0x1F03, 0x3B9), 0x1F84 => array(0x1F04, 0x3B9),
1856
-                    0x1F85 => array(0x1F05, 0x3B9), 0x1F86 => array(0x1F06, 0x3B9), 0x1F87 => array(0x1F07, 0x3B9),
1857
-                    0x1F88 => array(0x1F00, 0x3B9), 0x1F89 => array(0x1F01, 0x3B9), 0x1F8A => array(0x1F02, 0x3B9),
1858
-                    0x1F8B => array(0x1F03, 0x3B9), 0x1F8C => array(0x1F04, 0x3B9), 0x1F8D => array(0x1F05, 0x3B9),
1859
-                    0x1F8E => array(0x1F06, 0x3B9), 0x1F8F => array(0x1F07, 0x3B9), 0x1F90 => array(0x1F20, 0x3B9),
1860
-                    0x1F91 => array(0x1F21, 0x3B9), 0x1F92 => array(0x1F22, 0x3B9), 0x1F93 => array(0x1F23, 0x3B9),
1861
-                    0x1F94 => array(0x1F24, 0x3B9), 0x1F95 => array(0x1F25, 0x3B9), 0x1F96 => array(0x1F26, 0x3B9),
1862
-                    0x1F97 => array(0x1F27, 0x3B9), 0x1F98 => array(0x1F20, 0x3B9), 0x1F99 => array(0x1F21, 0x3B9),
1863
-                    0x1F9A => array(0x1F22, 0x3B9), 0x1F9B => array(0x1F23, 0x3B9), 0x1F9C => array(0x1F24, 0x3B9),
1864
-                    0x1F9D => array(0x1F25, 0x3B9), 0x1F9E => array(0x1F26, 0x3B9), 0x1F9F => array(0x1F27, 0x3B9),
1865
-                    0x1FA0 => array(0x1F60, 0x3B9), 0x1FA1 => array(0x1F61, 0x3B9), 0x1FA2 => array(0x1F62, 0x3B9),
1866
-                    0x1FA3 => array(0x1F63, 0x3B9), 0x1FA4 => array(0x1F64, 0x3B9), 0x1FA5 => array(0x1F65, 0x3B9),
1867
-                    0x1FA6 => array(0x1F66, 0x3B9), 0x1FA7 => array(0x1F67, 0x3B9), 0x1FA8 => array(0x1F60, 0x3B9),
1868
-                    0x1FA9 => array(0x1F61, 0x3B9), 0x1FAA => array(0x1F62, 0x3B9), 0x1FAB => array(0x1F63, 0x3B9),
1869
-                    0x1FAC => array(0x1F64, 0x3B9), 0x1FAD => array(0x1F65, 0x3B9), 0x1FAE => array(0x1F66, 0x3B9),
1870
-                    0x1FAF => array(0x1F67, 0x3B9), 0x1FB2 => array(0x1F70, 0x3B9), 0x1FB3 => array(0x3B1, 0x3B9),
1871
-                    0x1FB4 => array(0x3AC, 0x3B9), 0x1FB7 => array(0x1FB6, 0x3B9), 0x1FB8 => array(0x1FB0),
1872
-                    0x1FB9 => array(0x1FB1), 0x1FBA => array(0x1F70), 0x1FBB => array(0x3AC),
1873
-                    0x1FBC => array(0x3B1, 0x3B9), 0x1FBE => array(0x3B9), 0x1FC2 => array(0x1F74, 0x3B9),
1874
-                    0x1FC3 => array(0x3B7, 0x3B9), 0x1FC4 => array(0x3AE, 0x3B9), 0x1FC7 => array(0x1FC6, 0x3B9),
1875
-                    0x1FC8 => array(0x1F72), 0x1FC9 => array(0x3AD), 0x1FCA => array(0x1F74),
1876
-                    0x1FCB => array(0x3AE), 0x1FCC => array(0x3B7, 0x3B9), 0x1FD3 => array(0x390),
1877
-                    0x1FD8 => array(0x1FD0), 0x1FD9 => array(0x1FD1), 0x1FDA => array(0x1F76),
1878
-                    0x1FDB => array(0x3AF), 0x1FE3 => array(0x3B0), 0x1FE8 => array(0x1FE0),
1879
-                    0x1FE9 => array(0x1FE1), 0x1FEA => array(0x1F7A), 0x1FEB => array(0x3CD),
1880
-                    0x1FEC => array(0x1FE5), 0x1FF2 => array(0x1F7C, 0x3B9), 0x1FF3 => array(0x3C9, 0x3B9),
1881
-                    0x1FF4 => array(0x3CE, 0x3B9), 0x1FF7 => array(0x1FF6, 0x3B9), 0x1FF8 => array(0x1F78),
1882
-                    0x1FF9 => array(0x3CC), 0x1FFA => array(0x1F7C), 0x1FFB => array(0x3CE),
1883
-                    0x1FFC => array(0x3C9, 0x3B9), 0x2011 => array(0x2010), 0x2033 => array(0x2032, 0x2032),
1884
-                    0x2034 => array(0x2032, 0x2032, 0x2032), 0x2036 => array(0x2035, 0x2035), 0x2037 => array(0x2035, 0x2035, 0x2035),
1885
-                    0x2057 => array(0x2032, 0x2032, 0x2032, 0x2032), 0x2070 => array(0x30), 0x2071 => array(0x69),
1886
-                    0x2074 => array(0x34), 0x2075 => array(0x35), 0x2076 => array(0x36),
1887
-                    0x2077 => array(0x37), 0x2078 => array(0x38), 0x2079 => array(0x39),
1888
-                    0x207B => array(0x2212), 0x207F => array(0x6E), 0x2080 => array(0x30),
1889
-                    0x2081 => array(0x31), 0x2082 => array(0x32), 0x2083 => array(0x33),
1890
-                    0x2084 => array(0x34), 0x2085 => array(0x35), 0x2086 => array(0x36),
1891
-                    0x2087 => array(0x37), 0x2088 => array(0x38), 0x2089 => array(0x39),
1892
-                    0x208B => array(0x2212), 0x2090 => array(0x61), 0x2091 => array(0x65),
1893
-                    0x2092 => array(0x6F), 0x2093 => array(0x78), 0x2094 => array(0x259),
1894
-                    0x2095 => array(0x68), 0x2096 => array(0x6B), 0x2097 => array(0x6C),
1895
-                    0x2098 => array(0x6D), 0x2099 => array(0x6E), 0x209A => array(0x70),
1896
-                    0x209B => array(0x73), 0x209C => array(0x74), 0x20A8 => array(0x72, 0x73),
1897
-                    0x2102 => array(0x63), 0x2103 => array(0xB0, 0x63), 0x2107 => array(0x25B),
1898
-                    0x2109 => array(0xB0, 0x66), 0x210A => array(0x67), 0x210B => array(0x68),
1899
-                    0x210C => array(0x68), 0x210D => array(0x68), 0x210E => array(0x68),
1900
-                    0x210F => array(0x127), 0x2110 => array(0x69), 0x2111 => array(0x69),
1901
-                    0x2112 => array(0x6C), 0x2113 => array(0x6C), 0x2115 => array(0x6E),
1902
-                    0x2116 => array(0x6E, 0x6F), 0x2119 => array(0x70), 0x211A => array(0x71),
1903
-                    0x211B => array(0x72), 0x211C => array(0x72), 0x211D => array(0x72),
1904
-                    0x2120 => array(0x73, 0x6D), 0x2121 => array(0x74, 0x65, 0x6C), 0x2122 => array(0x74, 0x6D),
1905
-                    0x2124 => array(0x7A), 0x2126 => array(0x3C9), 0x2128 => array(0x7A),
1906
-                    0x212A => array(0x6B), 0x212B => array(0xE5), 0x212C => array(0x62),
1907
-                    0x212D => array(0x63), 0x212F => array(0x65), 0x2130 => array(0x65),
1908
-                    0x2131 => array(0x66), 0x2133 => array(0x6D), 0x2134 => array(0x6F),
1909
-                    0x2135 => array(0x5D0), 0x2136 => array(0x5D1), 0x2137 => array(0x5D2),
1910
-                    0x2138 => array(0x5D3), 0x2139 => array(0x69), 0x213B => array(0x66, 0x61, 0x78),
1911
-                    0x213C => array(0x3C0), 0x213D => array(0x3B3), 0x213E => array(0x3B3),
1912
-                    0x213F => array(0x3C0), 0x2140 => array(0x2211), 0x2145 => array(0x64),
1913
-                    0x2146 => array(0x64), 0x2147 => array(0x65), 0x2148 => array(0x69),
1914
-                    0x2149 => array(0x6A), 0x2150 => array(0x31, 0x2044, 0x37), 0x2151 => array(0x31, 0x2044, 0x39),
1915
-                    0x2152 => array(0x31, 0x2044, 0x31, 0x30), 0x2153 => array(0x31, 0x2044, 0x33), 0x2154 => array(0x32, 0x2044, 0x33),
1916
-                    0x2155 => array(0x31, 0x2044, 0x35), 0x2156 => array(0x32, 0x2044, 0x35), 0x2157 => array(0x33, 0x2044, 0x35),
1917
-                    0x2158 => array(0x34, 0x2044, 0x35), 0x2159 => array(0x31, 0x2044, 0x36), 0x215A => array(0x35, 0x2044, 0x36),
1918
-                    0x215B => array(0x31, 0x2044, 0x38), 0x215C => array(0x33, 0x2044, 0x38), 0x215D => array(0x35, 0x2044, 0x38),
1919
-                    0x215E => array(0x37, 0x2044, 0x38), 0x215F => array(0x31, 0x2044), 0x2160 => array(0x69),
1920
-                    0x2161 => array(0x69, 0x69), 0x2162 => array(0x69, 0x69, 0x69), 0x2163 => array(0x69, 0x76),
1921
-                    0x2164 => array(0x76), 0x2165 => array(0x76, 0x69), 0x2166 => array(0x76, 0x69, 0x69),
1922
-                    0x2167 => array(0x76, 0x69, 0x69, 0x69), 0x2168 => array(0x69, 0x78), 0x2169 => array(0x78),
1923
-                    0x216A => array(0x78, 0x69), 0x216B => array(0x78, 0x69, 0x69), 0x216C => array(0x6C),
1924
-                    0x216D => array(0x63), 0x216E => array(0x64), 0x216F => array(0x6D),
1925
-                    0x2170 => array(0x69), 0x2171 => array(0x69, 0x69), 0x2172 => array(0x69, 0x69, 0x69),
1926
-                    0x2173 => array(0x69, 0x76), 0x2174 => array(0x76), 0x2175 => array(0x76, 0x69),
1927
-                    0x2176 => array(0x76, 0x69, 0x69), 0x2177 => array(0x76, 0x69, 0x69, 0x69), 0x2178 => array(0x69, 0x78),
1928
-                    0x2179 => array(0x78), 0x217A => array(0x78, 0x69), 0x217B => array(0x78, 0x69, 0x69),
1929
-                    0x217C => array(0x6C), 0x217D => array(0x63), 0x217E => array(0x64),
1930
-                    0x217F => array(0x6D), 0x2189 => array(0x30, 0x2044, 0x33), 0x222C => array(0x222B, 0x222B),
1931
-                    0x222D => array(0x222B, 0x222B, 0x222B), 0x222F => array(0x222E, 0x222E), 0x2230 => array(0x222E, 0x222E, 0x222E),
1932
-                    0x2329 => array(0x3008), 0x232A => array(0x3009), 0x2460 => array(0x31),
1933
-                    0x2461 => array(0x32), 0x2462 => array(0x33), 0x2463 => array(0x34),
1934
-                    0x2464 => array(0x35), 0x2465 => array(0x36), 0x2466 => array(0x37),
1935
-                    0x2467 => array(0x38), 0x2468 => array(0x39), 0x2469 => array(0x31, 0x30),
1936
-                    0x246A => array(0x31, 0x31), 0x246B => array(0x31, 0x32), 0x246C => array(0x31, 0x33),
1937
-                    0x246D => array(0x31, 0x34), 0x246E => array(0x31, 0x35), 0x246F => array(0x31, 0x36),
1938
-                    0x2470 => array(0x31, 0x37), 0x2471 => array(0x31, 0x38), 0x2472 => array(0x31, 0x39),
1939
-                    0x2473 => array(0x32, 0x30), 0x24B6 => array(0x61), 0x24B7 => array(0x62),
1940
-                    0x24B8 => array(0x63), 0x24B9 => array(0x64), 0x24BA => array(0x65),
1941
-                    0x24BB => array(0x66), 0x24BC => array(0x67), 0x24BD => array(0x68),
1942
-                    0x24BE => array(0x69), 0x24BF => array(0x6A), 0x24C0 => array(0x6B),
1943
-                    0x24C1 => array(0x6C), 0x24C2 => array(0x6D), 0x24C3 => array(0x6E),
1944
-                    0x24C4 => array(0x6F), 0x24C5 => array(0x70), 0x24C6 => array(0x71),
1945
-                    0x24C7 => array(0x72), 0x24C8 => array(0x73), 0x24C9 => array(0x74),
1946
-                    0x24CA => array(0x75), 0x24CB => array(0x76), 0x24CC => array(0x77),
1947
-                    0x24CD => array(0x78), 0x24CE => array(0x79), 0x24CF => array(0x7A),
1948
-                    0x24D0 => array(0x61), 0x24D1 => array(0x62), 0x24D2 => array(0x63),
1949
-                    0x24D3 => array(0x64), 0x24D4 => array(0x65), 0x24D5 => array(0x66),
1950
-                    0x24D6 => array(0x67), 0x24D7 => array(0x68), 0x24D8 => array(0x69),
1951
-                    0x24D9 => array(0x6A), 0x24DA => array(0x6B), 0x24DB => array(0x6C),
1952
-                    0x24DC => array(0x6D), 0x24DD => array(0x6E), 0x24DE => array(0x6F),
1953
-                    0x24DF => array(0x70), 0x24E0 => array(0x71), 0x24E1 => array(0x72),
1954
-                    0x24E2 => array(0x73), 0x24E3 => array(0x74), 0x24E4 => array(0x75),
1955
-                    0x24E5 => array(0x76), 0x24E6 => array(0x77), 0x24E7 => array(0x78),
1956
-                    0x24E8 => array(0x79), 0x24E9 => array(0x7A), 0x24EA => array(0x30),
1957
-                    0x2A0C => array(0x222B, 0x222B, 0x222B, 0x222B), 0x2ADC => array(0x2ADD, 0x338), 0x2C00 => array(0x2C30),
1958
-                    0x2C01 => array(0x2C31), 0x2C02 => array(0x2C32), 0x2C03 => array(0x2C33),
1959
-                    0x2C04 => array(0x2C34), 0x2C05 => array(0x2C35), 0x2C06 => array(0x2C36),
1960
-                    0x2C07 => array(0x2C37), 0x2C08 => array(0x2C38), 0x2C09 => array(0x2C39),
1961
-                    0x2C0A => array(0x2C3A), 0x2C0B => array(0x2C3B), 0x2C0C => array(0x2C3C),
1962
-                    0x2C0D => array(0x2C3D), 0x2C0E => array(0x2C3E), 0x2C0F => array(0x2C3F),
1963
-                    0x2C10 => array(0x2C40), 0x2C11 => array(0x2C41), 0x2C12 => array(0x2C42),
1964
-                    0x2C13 => array(0x2C43), 0x2C14 => array(0x2C44), 0x2C15 => array(0x2C45),
1965
-                    0x2C16 => array(0x2C46), 0x2C17 => array(0x2C47), 0x2C18 => array(0x2C48),
1966
-                    0x2C19 => array(0x2C49), 0x2C1A => array(0x2C4A), 0x2C1B => array(0x2C4B),
1967
-                    0x2C1C => array(0x2C4C), 0x2C1D => array(0x2C4D), 0x2C1E => array(0x2C4E),
1968
-                    0x2C1F => array(0x2C4F), 0x2C20 => array(0x2C50), 0x2C21 => array(0x2C51),
1969
-                    0x2C22 => array(0x2C52), 0x2C23 => array(0x2C53), 0x2C24 => array(0x2C54),
1970
-                    0x2C25 => array(0x2C55), 0x2C26 => array(0x2C56), 0x2C27 => array(0x2C57),
1971
-                    0x2C28 => array(0x2C58), 0x2C29 => array(0x2C59), 0x2C2A => array(0x2C5A),
1972
-                    0x2C2B => array(0x2C5B), 0x2C2C => array(0x2C5C), 0x2C2D => array(0x2C5D),
1973
-                    0x2C2E => array(0x2C5E), 0x2C60 => array(0x2C61), 0x2C62 => array(0x26B),
1974
-                    0x2C63 => array(0x1D7D), 0x2C64 => array(0x27D), 0x2C67 => array(0x2C68),
1975
-                    0x2C69 => array(0x2C6A), 0x2C6B => array(0x2C6C), 0x2C6D => array(0x251),
1976
-                    0x2C6E => array(0x271), 0x2C6F => array(0x250), 0x2C70 => array(0x252),
1977
-                    0x2C72 => array(0x2C73), 0x2C75 => array(0x2C76), 0x2C7C => array(0x6A),
1978
-                    0x2C7D => array(0x76), 0x2C7E => array(0x23F), 0x2C7F => array(0x240),
1979
-                    0x2C80 => array(0x2C81), 0x2C82 => array(0x2C83), 0x2C84 => array(0x2C85),
1980
-                    0x2C86 => array(0x2C87), 0x2C88 => array(0x2C89), 0x2C8A => array(0x2C8B),
1981
-                    0x2C8C => array(0x2C8D), 0x2C8E => array(0x2C8F), 0x2C90 => array(0x2C91),
1982
-                    0x2C92 => array(0x2C93), 0x2C94 => array(0x2C95), 0x2C96 => array(0x2C97),
1983
-                    0x2C98 => array(0x2C99), 0x2C9A => array(0x2C9B), 0x2C9C => array(0x2C9D),
1984
-                    0x2C9E => array(0x2C9F), 0x2CA0 => array(0x2CA1), 0x2CA2 => array(0x2CA3),
1985
-                    0x2CA4 => array(0x2CA5), 0x2CA6 => array(0x2CA7), 0x2CA8 => array(0x2CA9),
1986
-                    0x2CAA => array(0x2CAB), 0x2CAC => array(0x2CAD), 0x2CAE => array(0x2CAF),
1987
-                    0x2CB0 => array(0x2CB1), 0x2CB2 => array(0x2CB3), 0x2CB4 => array(0x2CB5),
1988
-                    0x2CB6 => array(0x2CB7), 0x2CB8 => array(0x2CB9), 0x2CBA => array(0x2CBB),
1989
-                    0x2CBC => array(0x2CBD), 0x2CBE => array(0x2CBF), 0x2CC0 => array(0x2CC1),
1990
-                    0x2CC2 => array(0x2CC3), 0x2CC4 => array(0x2CC5), 0x2CC6 => array(0x2CC7),
1991
-                    0x2CC8 => array(0x2CC9), 0x2CCA => array(0x2CCB), 0x2CCC => array(0x2CCD),
1992
-                    0x2CCE => array(0x2CCF), 0x2CD0 => array(0x2CD1), 0x2CD2 => array(0x2CD3),
1993
-                    0x2CD4 => array(0x2CD5), 0x2CD6 => array(0x2CD7), 0x2CD8 => array(0x2CD9),
1994
-                    0x2CDA => array(0x2CDB), 0x2CDC => array(0x2CDD), 0x2CDE => array(0x2CDF),
1995
-                    0x2CE0 => array(0x2CE1), 0x2CE2 => array(0x2CE3), 0x2CEB => array(0x2CEC),
1996
-                    0x2CED => array(0x2CEE), 0x2CF2 => array(0x2CF3), 0x2D6F => array(0x2D61),
1997
-                    0x2E9F => array(0x6BCD), 0x2EF3 => array(0x9F9F), 0x2F00 => array(0x4E00),
1998
-                    0x2F01 => array(0x4E28), 0x2F02 => array(0x4E36), 0x2F03 => array(0x4E3F),
1999
-                    0x2F04 => array(0x4E59), 0x2F05 => array(0x4E85), 0x2F06 => array(0x4E8C),
2000
-                    0x2F07 => array(0x4EA0), 0x2F08 => array(0x4EBA), 0x2F09 => array(0x513F),
2001
-                    0x2F0A => array(0x5165), 0x2F0B => array(0x516B), 0x2F0C => array(0x5182),
2002
-                    0x2F0D => array(0x5196), 0x2F0E => array(0x51AB), 0x2F0F => array(0x51E0),
2003
-                    0x2F10 => array(0x51F5), 0x2F11 => array(0x5200), 0x2F12 => array(0x529B),
2004
-                    0x2F13 => array(0x52F9), 0x2F14 => array(0x5315), 0x2F15 => array(0x531A),
2005
-                    0x2F16 => array(0x5338), 0x2F17 => array(0x5341), 0x2F18 => array(0x535C),
2006
-                    0x2F19 => array(0x5369), 0x2F1A => array(0x5382), 0x2F1B => array(0x53B6),
2007
-                    0x2F1C => array(0x53C8), 0x2F1D => array(0x53E3), 0x2F1E => array(0x56D7),
2008
-                    0x2F1F => array(0x571F), 0x2F20 => array(0x58EB), 0x2F21 => array(0x5902),
2009
-                    0x2F22 => array(0x590A), 0x2F23 => array(0x5915), 0x2F24 => array(0x5927),
2010
-                    0x2F25 => array(0x5973), 0x2F26 => array(0x5B50), 0x2F27 => array(0x5B80),
2011
-                    0x2F28 => array(0x5BF8), 0x2F29 => array(0x5C0F), 0x2F2A => array(0x5C22),
2012
-                    0x2F2B => array(0x5C38), 0x2F2C => array(0x5C6E), 0x2F2D => array(0x5C71),
2013
-                    0x2F2E => array(0x5DDB), 0x2F2F => array(0x5DE5), 0x2F30 => array(0x5DF1),
2014
-                    0x2F31 => array(0x5DFE), 0x2F32 => array(0x5E72), 0x2F33 => array(0x5E7A),
2015
-                    0x2F34 => array(0x5E7F), 0x2F35 => array(0x5EF4), 0x2F36 => array(0x5EFE),
2016
-                    0x2F37 => array(0x5F0B), 0x2F38 => array(0x5F13), 0x2F39 => array(0x5F50),
2017
-                    0x2F3A => array(0x5F61), 0x2F3B => array(0x5F73), 0x2F3C => array(0x5FC3),
2018
-                    0x2F3D => array(0x6208), 0x2F3E => array(0x6236), 0x2F3F => array(0x624B),
2019
-                    0x2F40 => array(0x652F), 0x2F41 => array(0x6534), 0x2F42 => array(0x6587),
2020
-                    0x2F43 => array(0x6597), 0x2F44 => array(0x65A4), 0x2F45 => array(0x65B9),
2021
-                    0x2F46 => array(0x65E0), 0x2F47 => array(0x65E5), 0x2F48 => array(0x66F0),
2022
-                    0x2F49 => array(0x6708), 0x2F4A => array(0x6728), 0x2F4B => array(0x6B20),
2023
-                    0x2F4C => array(0x6B62), 0x2F4D => array(0x6B79), 0x2F4E => array(0x6BB3),
2024
-                    0x2F4F => array(0x6BCB), 0x2F50 => array(0x6BD4), 0x2F51 => array(0x6BDB),
2025
-                    0x2F52 => array(0x6C0F), 0x2F53 => array(0x6C14), 0x2F54 => array(0x6C34),
2026
-                    0x2F55 => array(0x706B), 0x2F56 => array(0x722A), 0x2F57 => array(0x7236),
2027
-                    0x2F58 => array(0x723B), 0x2F59 => array(0x723F), 0x2F5A => array(0x7247),
2028
-                    0x2F5B => array(0x7259), 0x2F5C => array(0x725B), 0x2F5D => array(0x72AC),
2029
-                    0x2F5E => array(0x7384), 0x2F5F => array(0x7389), 0x2F60 => array(0x74DC),
2030
-                    0x2F61 => array(0x74E6), 0x2F62 => array(0x7518), 0x2F63 => array(0x751F),
2031
-                    0x2F64 => array(0x7528), 0x2F65 => array(0x7530), 0x2F66 => array(0x758B),
2032
-                    0x2F67 => array(0x7592), 0x2F68 => array(0x7676), 0x2F69 => array(0x767D),
2033
-                    0x2F6A => array(0x76AE), 0x2F6B => array(0x76BF), 0x2F6C => array(0x76EE),
2034
-                    0x2F6D => array(0x77DB), 0x2F6E => array(0x77E2), 0x2F6F => array(0x77F3),
2035
-                    0x2F70 => array(0x793A), 0x2F71 => array(0x79B8), 0x2F72 => array(0x79BE),
2036
-                    0x2F73 => array(0x7A74), 0x2F74 => array(0x7ACB), 0x2F75 => array(0x7AF9),
2037
-                    0x2F76 => array(0x7C73), 0x2F77 => array(0x7CF8), 0x2F78 => array(0x7F36),
2038
-                    0x2F79 => array(0x7F51), 0x2F7A => array(0x7F8A), 0x2F7B => array(0x7FBD),
2039
-                    0x2F7C => array(0x8001), 0x2F7D => array(0x800C), 0x2F7E => array(0x8012),
2040
-                    0x2F7F => array(0x8033), 0x2F80 => array(0x807F), 0x2F81 => array(0x8089),
2041
-                    0x2F82 => array(0x81E3), 0x2F83 => array(0x81EA), 0x2F84 => array(0x81F3),
2042
-                    0x2F85 => array(0x81FC), 0x2F86 => array(0x820C), 0x2F87 => array(0x821B),
2043
-                    0x2F88 => array(0x821F), 0x2F89 => array(0x826E), 0x2F8A => array(0x8272),
2044
-                    0x2F8B => array(0x8278), 0x2F8C => array(0x864D), 0x2F8D => array(0x866B),
2045
-                    0x2F8E => array(0x8840), 0x2F8F => array(0x884C), 0x2F90 => array(0x8863),
2046
-                    0x2F91 => array(0x897E), 0x2F92 => array(0x898B), 0x2F93 => array(0x89D2),
2047
-                    0x2F94 => array(0x8A00), 0x2F95 => array(0x8C37), 0x2F96 => array(0x8C46),
2048
-                    0x2F97 => array(0x8C55), 0x2F98 => array(0x8C78), 0x2F99 => array(0x8C9D),
2049
-                    0x2F9A => array(0x8D64), 0x2F9B => array(0x8D70), 0x2F9C => array(0x8DB3),
2050
-                    0x2F9D => array(0x8EAB), 0x2F9E => array(0x8ECA), 0x2F9F => array(0x8F9B),
2051
-                    0x2FA0 => array(0x8FB0), 0x2FA1 => array(0x8FB5), 0x2FA2 => array(0x9091),
2052
-                    0x2FA3 => array(0x9149), 0x2FA4 => array(0x91C6), 0x2FA5 => array(0x91CC),
2053
-                    0x2FA6 => array(0x91D1), 0x2FA7 => array(0x9577), 0x2FA8 => array(0x9580),
2054
-                    0x2FA9 => array(0x961C), 0x2FAA => array(0x96B6), 0x2FAB => array(0x96B9),
2055
-                    0x2FAC => array(0x96E8), 0x2FAD => array(0x9751), 0x2FAE => array(0x975E),
2056
-                    0x2FAF => array(0x9762), 0x2FB0 => array(0x9769), 0x2FB1 => array(0x97CB),
2057
-                    0x2FB2 => array(0x97ED), 0x2FB3 => array(0x97F3), 0x2FB4 => array(0x9801),
2058
-                    0x2FB5 => array(0x98A8), 0x2FB6 => array(0x98DB), 0x2FB7 => array(0x98DF),
2059
-                    0x2FB8 => array(0x9996), 0x2FB9 => array(0x9999), 0x2FBA => array(0x99AC),
2060
-                    0x2FBB => array(0x9AA8), 0x2FBC => array(0x9AD8), 0x2FBD => array(0x9ADF),
2061
-                    0x2FBE => array(0x9B25), 0x2FBF => array(0x9B2F), 0x2FC0 => array(0x9B32),
2062
-                    0x2FC1 => array(0x9B3C), 0x2FC2 => array(0x9B5A), 0x2FC3 => array(0x9CE5),
2063
-                    0x2FC4 => array(0x9E75), 0x2FC5 => array(0x9E7F), 0x2FC6 => array(0x9EA5),
2064
-                    0x2FC7 => array(0x9EBB), 0x2FC8 => array(0x9EC3), 0x2FC9 => array(0x9ECD),
2065
-                    0x2FCA => array(0x9ED1), 0x2FCB => array(0x9EF9), 0x2FCC => array(0x9EFD),
2066
-                    0x2FCD => array(0x9F0E), 0x2FCE => array(0x9F13), 0x2FCF => array(0x9F20),
2067
-                    0x2FD0 => array(0x9F3B), 0x2FD1 => array(0x9F4A), 0x2FD2 => array(0x9F52),
2068
-                    0x2FD3 => array(0x9F8D), 0x2FD4 => array(0x9F9C), 0x2FD5 => array(0x9FA0),
2069
-                    0x3002 => array(0x2E), 0x3036 => array(0x3012), 0x3038 => array(0x5341),
2070
-                    0x3039 => array(0x5344), 0x303A => array(0x5345), 0x309F => array(0x3088, 0x308A),
2071
-                    0x30FF => array(0x30B3, 0x30C8), 0x3131 => array(0x1100), 0x3132 => array(0x1101),
2072
-                    0x3133 => array(0x11AA), 0x3134 => array(0x1102), 0x3135 => array(0x11AC),
2073
-                    0x3136 => array(0x11AD), 0x3137 => array(0x1103), 0x3138 => array(0x1104),
2074
-                    0x3139 => array(0x1105), 0x313A => array(0x11B0), 0x313B => array(0x11B1),
2075
-                    0x313C => array(0x11B2), 0x313D => array(0x11B3), 0x313E => array(0x11B4),
2076
-                    0x313F => array(0x11B5), 0x3140 => array(0x111A), 0x3141 => array(0x1106),
2077
-                    0x3142 => array(0x1107), 0x3143 => array(0x1108), 0x3144 => array(0x1121),
2078
-                    0x3145 => array(0x1109), 0x3146 => array(0x110A), 0x3147 => array(0x110B),
2079
-                    0x3148 => array(0x110C), 0x3149 => array(0x110D), 0x314A => array(0x110E),
2080
-                    0x314B => array(0x110F), 0x314C => array(0x1110), 0x314D => array(0x1111),
2081
-                    0x314E => array(0x1112), 0x314F => array(0x1161), 0x3150 => array(0x1162),
2082
-                    0x3151 => array(0x1163), 0x3152 => array(0x1164), 0x3153 => array(0x1165),
2083
-                    0x3154 => array(0x1166), 0x3155 => array(0x1167), 0x3156 => array(0x1168),
2084
-                    0x3157 => array(0x1169), 0x3158 => array(0x116A), 0x3159 => array(0x116B),
2085
-                    0x315A => array(0x116C), 0x315B => array(0x116D), 0x315C => array(0x116E),
2086
-                    0x315D => array(0x116F), 0x315E => array(0x1170), 0x315F => array(0x1171),
2087
-                    0x3160 => array(0x1172), 0x3161 => array(0x1173), 0x3162 => array(0x1174),
2088
-                    0x3163 => array(0x1175), 0x3165 => array(0x1114), 0x3166 => array(0x1115),
2089
-                    0x3167 => array(0x11C7), 0x3168 => array(0x11C8), 0x3169 => array(0x11CC),
2090
-                    0x316A => array(0x11CE), 0x316B => array(0x11D3), 0x316C => array(0x11D7),
2091
-                    0x316D => array(0x11D9), 0x316E => array(0x111C), 0x316F => array(0x11DD),
2092
-                    0x3170 => array(0x11DF), 0x3171 => array(0x111D), 0x3172 => array(0x111E),
2093
-                    0x3173 => array(0x1120), 0x3174 => array(0x1122), 0x3175 => array(0x1123),
2094
-                    0x3176 => array(0x1127), 0x3177 => array(0x1129), 0x3178 => array(0x112B),
2095
-                    0x3179 => array(0x112C), 0x317A => array(0x112D), 0x317B => array(0x112E),
2096
-                    0x317C => array(0x112F), 0x317D => array(0x1132), 0x317E => array(0x1136),
2097
-                    0x317F => array(0x1140), 0x3180 => array(0x1147), 0x3181 => array(0x114C),
2098
-                    0x3182 => array(0x11F1), 0x3183 => array(0x11F2), 0x3184 => array(0x1157),
2099
-                    0x3185 => array(0x1158), 0x3186 => array(0x1159), 0x3187 => array(0x1184),
2100
-                    0x3188 => array(0x1185), 0x3189 => array(0x1188), 0x318A => array(0x1191),
2101
-                    0x318B => array(0x1192), 0x318C => array(0x1194), 0x318D => array(0x119E),
2102
-                    0x318E => array(0x11A1), 0x3192 => array(0x4E00), 0x3193 => array(0x4E8C),
2103
-                    0x3194 => array(0x4E09), 0x3195 => array(0x56DB), 0x3196 => array(0x4E0A),
2104
-                    0x3197 => array(0x4E2D), 0x3198 => array(0x4E0B), 0x3199 => array(0x7532),
2105
-                    0x319A => array(0x4E59), 0x319B => array(0x4E19), 0x319C => array(0x4E01),
2106
-                    0x319D => array(0x5929), 0x319E => array(0x5730), 0x319F => array(0x4EBA),
2107
-                    0x3244 => array(0x554F), 0x3245 => array(0x5E7C), 0x3246 => array(0x6587),
2108
-                    0x3247 => array(0x7B8F), 0x3250 => array(0x70, 0x74, 0x65), 0x3251 => array(0x32, 0x31),
2109
-                    0x3252 => array(0x32, 0x32), 0x3253 => array(0x32, 0x33), 0x3254 => array(0x32, 0x34),
2110
-                    0x3255 => array(0x32, 0x35), 0x3256 => array(0x32, 0x36), 0x3257 => array(0x32, 0x37),
2111
-                    0x3258 => array(0x32, 0x38), 0x3259 => array(0x32, 0x39), 0x325A => array(0x33, 0x30),
2112
-                    0x325B => array(0x33, 0x31), 0x325C => array(0x33, 0x32), 0x325D => array(0x33, 0x33),
2113
-                    0x325E => array(0x33, 0x34), 0x325F => array(0x33, 0x35), 0x3260 => array(0x1100),
2114
-                    0x3261 => array(0x1102), 0x3262 => array(0x1103), 0x3263 => array(0x1105),
2115
-                    0x3264 => array(0x1106), 0x3265 => array(0x1107), 0x3266 => array(0x1109),
2116
-                    0x3267 => array(0x110B), 0x3268 => array(0x110C), 0x3269 => array(0x110E),
2117
-                    0x326A => array(0x110F), 0x326B => array(0x1110), 0x326C => array(0x1111),
2118
-                    0x326D => array(0x1112), 0x326E => array(0xAC00), 0x326F => array(0xB098),
2119
-                    0x3270 => array(0xB2E4), 0x3271 => array(0xB77C), 0x3272 => array(0xB9C8),
2120
-                    0x3273 => array(0xBC14), 0x3274 => array(0xC0AC), 0x3275 => array(0xC544),
2121
-                    0x3276 => array(0xC790), 0x3277 => array(0xCC28), 0x3278 => array(0xCE74),
2122
-                    0x3279 => array(0xD0C0), 0x327A => array(0xD30C), 0x327B => array(0xD558),
2123
-                    0x327C => array(0xCC38, 0xACE0), 0x327D => array(0xC8FC, 0xC758), 0x327E => array(0xC6B0),
2124
-                    0x3280 => array(0x4E00), 0x3281 => array(0x4E8C), 0x3282 => array(0x4E09),
2125
-                    0x3283 => array(0x56DB), 0x3284 => array(0x4E94), 0x3285 => array(0x516D),
2126
-                    0x3286 => array(0x4E03), 0x3287 => array(0x516B), 0x3288 => array(0x4E5D),
2127
-                    0x3289 => array(0x5341), 0x328A => array(0x6708), 0x328B => array(0x706B),
2128
-                    0x328C => array(0x6C34), 0x328D => array(0x6728), 0x328E => array(0x91D1),
2129
-                    0x328F => array(0x571F), 0x3290 => array(0x65E5), 0x3291 => array(0x682A),
2130
-                    0x3292 => array(0x6709), 0x3293 => array(0x793E), 0x3294 => array(0x540D),
2131
-                    0x3295 => array(0x7279), 0x3296 => array(0x8CA1), 0x3297 => array(0x795D),
2132
-                    0x3298 => array(0x52B4), 0x3299 => array(0x79D8), 0x329A => array(0x7537),
2133
-                    0x329B => array(0x5973), 0x329C => array(0x9069), 0x329D => array(0x512A),
2134
-                    0x329E => array(0x5370), 0x329F => array(0x6CE8), 0x32A0 => array(0x9805),
2135
-                    0x32A1 => array(0x4F11), 0x32A2 => array(0x5199), 0x32A3 => array(0x6B63),
2136
-                    0x32A4 => array(0x4E0A), 0x32A5 => array(0x4E2D), 0x32A6 => array(0x4E0B),
2137
-                    0x32A7 => array(0x5DE6), 0x32A8 => array(0x53F3), 0x32A9 => array(0x533B),
2138
-                    0x32AA => array(0x5B97), 0x32AB => array(0x5B66), 0x32AC => array(0x76E3),
2139
-                    0x32AD => array(0x4F01), 0x32AE => array(0x8CC7), 0x32AF => array(0x5354),
2140
-                    0x32B0 => array(0x591C), 0x32B1 => array(0x33, 0x36), 0x32B2 => array(0x33, 0x37),
2141
-                    0x32B3 => array(0x33, 0x38), 0x32B4 => array(0x33, 0x39), 0x32B5 => array(0x34, 0x30),
2142
-                    0x32B6 => array(0x34, 0x31), 0x32B7 => array(0x34, 0x32), 0x32B8 => array(0x34, 0x33),
2143
-                    0x32B9 => array(0x34, 0x34), 0x32BA => array(0x34, 0x35), 0x32BB => array(0x34, 0x36),
2144
-                    0x32BC => array(0x34, 0x37), 0x32BD => array(0x34, 0x38), 0x32BE => array(0x34, 0x39),
2145
-                    0x32BF => array(0x35, 0x30), 0x32C0 => array(0x31, 0x6708), 0x32C1 => array(0x32, 0x6708),
2146
-                    0x32C2 => array(0x33, 0x6708), 0x32C3 => array(0x34, 0x6708), 0x32C4 => array(0x35, 0x6708),
2147
-                    0x32C5 => array(0x36, 0x6708), 0x32C6 => array(0x37, 0x6708), 0x32C7 => array(0x38, 0x6708),
2148
-                    0x32C8 => array(0x39, 0x6708), 0x32C9 => array(0x31, 0x30, 0x6708), 0x32CA => array(0x31, 0x31, 0x6708),
2149
-                    0x32CB => array(0x31, 0x32, 0x6708), 0x32CC => array(0x68, 0x67), 0x32CD => array(0x65, 0x72, 0x67),
2150
-                    0x32CE => array(0x65, 0x76), 0x32CF => array(0x6C, 0x74, 0x64), 0x32D0 => array(0x30A2),
2151
-                    0x32D1 => array(0x30A4), 0x32D2 => array(0x30A6), 0x32D3 => array(0x30A8),
2152
-                    0x32D4 => array(0x30AA), 0x32D5 => array(0x30AB), 0x32D6 => array(0x30AD),
2153
-                    0x32D7 => array(0x30AF), 0x32D8 => array(0x30B1), 0x32D9 => array(0x30B3),
2154
-                    0x32DA => array(0x30B5), 0x32DB => array(0x30B7), 0x32DC => array(0x30B9),
2155
-                    0x32DD => array(0x30BB), 0x32DE => array(0x30BD), 0x32DF => array(0x30BF),
2156
-                    0x32E0 => array(0x30C1), 0x32E1 => array(0x30C4), 0x32E2 => array(0x30C6),
2157
-                    0x32E3 => array(0x30C8), 0x32E4 => array(0x30CA), 0x32E5 => array(0x30CB),
2158
-                    0x32E6 => array(0x30CC), 0x32E7 => array(0x30CD), 0x32E8 => array(0x30CE),
2159
-                    0x32E9 => array(0x30CF), 0x32EA => array(0x30D2), 0x32EB => array(0x30D5),
2160
-                    0x32EC => array(0x30D8), 0x32ED => array(0x30DB), 0x32EE => array(0x30DE),
2161
-                    0x32EF => array(0x30DF), 0x32F0 => array(0x30E0), 0x32F1 => array(0x30E1),
2162
-                    0x32F2 => array(0x30E2), 0x32F3 => array(0x30E4), 0x32F4 => array(0x30E6),
2163
-                    0x32F5 => array(0x30E8), 0x32F6 => array(0x30E9), 0x32F7 => array(0x30EA),
2164
-                    0x32F8 => array(0x30EB), 0x32F9 => array(0x30EC), 0x32FA => array(0x30ED),
2165
-                    0x32FB => array(0x30EF), 0x32FC => array(0x30F0), 0x32FD => array(0x30F1),
2166
-                    0x32FE => array(0x30F2), 0x3300 => array(0x30A2, 0x30D1, 0x30FC, 0x30C8), 0x3301 => array(0x30A2, 0x30EB, 0x30D5, 0x30A1),
2167
-                    0x3302 => array(0x30A2, 0x30F3, 0x30DA, 0x30A2), 0x3303 => array(0x30A2, 0x30FC, 0x30EB), 0x3304 => array(0x30A4, 0x30CB, 0x30F3, 0x30B0),
2168
-                    0x3305 => array(0x30A4, 0x30F3, 0x30C1), 0x3306 => array(0x30A6, 0x30A9, 0x30F3), 0x3307 => array(0x30A8, 0x30B9, 0x30AF, 0x30FC, 0x30C9),
2169
-                    0x3308 => array(0x30A8, 0x30FC, 0x30AB, 0x30FC), 0x3309 => array(0x30AA, 0x30F3, 0x30B9), 0x330A => array(0x30AA, 0x30FC, 0x30E0),
2170
-                    0x330B => array(0x30AB, 0x30A4, 0x30EA), 0x330C => array(0x30AB, 0x30E9, 0x30C3, 0x30C8), 0x330D => array(0x30AB, 0x30ED, 0x30EA, 0x30FC),
2171
-                    0x330E => array(0x30AC, 0x30ED, 0x30F3), 0x330F => array(0x30AC, 0x30F3, 0x30DE), 0x3310 => array(0x30AE, 0x30AC),
2172
-                    0x3311 => array(0x30AE, 0x30CB, 0x30FC), 0x3312 => array(0x30AD, 0x30E5, 0x30EA, 0x30FC), 0x3313 => array(0x30AE, 0x30EB, 0x30C0, 0x30FC),
2173
-                    0x3314 => array(0x30AD, 0x30ED), 0x3315 => array(0x30AD, 0x30ED, 0x30B0, 0x30E9, 0x30E0), 0x3316 => array(0x30AD, 0x30ED, 0x30E1, 0x30FC, 0x30C8, 0x30EB),
2174
-                    0x3317 => array(0x30AD, 0x30ED, 0x30EF, 0x30C3, 0x30C8), 0x3318 => array(0x30B0, 0x30E9, 0x30E0), 0x3319 => array(0x30B0, 0x30E9, 0x30E0, 0x30C8, 0x30F3),
2175
-                    0x331A => array(0x30AF, 0x30EB, 0x30BC, 0x30A4, 0x30ED), 0x331B => array(0x30AF, 0x30ED, 0x30FC, 0x30CD), 0x331C => array(0x30B1, 0x30FC, 0x30B9),
2176
-                    0x331D => array(0x30B3, 0x30EB, 0x30CA), 0x331E => array(0x30B3, 0x30FC, 0x30DD), 0x331F => array(0x30B5, 0x30A4, 0x30AF, 0x30EB),
2177
-                    0x3320 => array(0x30B5, 0x30F3, 0x30C1, 0x30FC, 0x30E0), 0x3321 => array(0x30B7, 0x30EA, 0x30F3, 0x30B0), 0x3322 => array(0x30BB, 0x30F3, 0x30C1),
2178
-                    0x3323 => array(0x30BB, 0x30F3, 0x30C8), 0x3324 => array(0x30C0, 0x30FC, 0x30B9), 0x3325 => array(0x30C7, 0x30B7),
2179
-                    0x3326 => array(0x30C9, 0x30EB), 0x3327 => array(0x30C8, 0x30F3), 0x3328 => array(0x30CA, 0x30CE),
2180
-                    0x3329 => array(0x30CE, 0x30C3, 0x30C8), 0x332A => array(0x30CF, 0x30A4, 0x30C4), 0x332B => array(0x30D1, 0x30FC, 0x30BB, 0x30F3, 0x30C8),
2181
-                    0x332C => array(0x30D1, 0x30FC, 0x30C4), 0x332D => array(0x30D0, 0x30FC, 0x30EC, 0x30EB), 0x332E => array(0x30D4, 0x30A2, 0x30B9, 0x30C8, 0x30EB),
2182
-                    0x332F => array(0x30D4, 0x30AF, 0x30EB), 0x3330 => array(0x30D4, 0x30B3), 0x3331 => array(0x30D3, 0x30EB),
2183
-                    0x3332 => array(0x30D5, 0x30A1, 0x30E9, 0x30C3, 0x30C9), 0x3333 => array(0x30D5, 0x30A3, 0x30FC, 0x30C8), 0x3334 => array(0x30D6, 0x30C3, 0x30B7, 0x30A7, 0x30EB),
2184
-                    0x3335 => array(0x30D5, 0x30E9, 0x30F3), 0x3336 => array(0x30D8, 0x30AF, 0x30BF, 0x30FC, 0x30EB), 0x3337 => array(0x30DA, 0x30BD),
2185
-                    0x3338 => array(0x30DA, 0x30CB, 0x30D2), 0x3339 => array(0x30D8, 0x30EB, 0x30C4), 0x333A => array(0x30DA, 0x30F3, 0x30B9),
2186
-                    0x333B => array(0x30DA, 0x30FC, 0x30B8), 0x333C => array(0x30D9, 0x30FC, 0x30BF), 0x333D => array(0x30DD, 0x30A4, 0x30F3, 0x30C8),
2187
-                    0x333E => array(0x30DC, 0x30EB, 0x30C8), 0x333F => array(0x30DB, 0x30F3), 0x3340 => array(0x30DD, 0x30F3, 0x30C9),
2188
-                    0x3341 => array(0x30DB, 0x30FC, 0x30EB), 0x3342 => array(0x30DB, 0x30FC, 0x30F3), 0x3343 => array(0x30DE, 0x30A4, 0x30AF, 0x30ED),
2189
-                    0x3344 => array(0x30DE, 0x30A4, 0x30EB), 0x3345 => array(0x30DE, 0x30C3, 0x30CF), 0x3346 => array(0x30DE, 0x30EB, 0x30AF),
2190
-                    0x3347 => array(0x30DE, 0x30F3, 0x30B7, 0x30E7, 0x30F3), 0x3348 => array(0x30DF, 0x30AF, 0x30ED, 0x30F3), 0x3349 => array(0x30DF, 0x30EA),
2191
-                    0x334A => array(0x30DF, 0x30EA, 0x30D0, 0x30FC, 0x30EB), 0x334B => array(0x30E1, 0x30AC), 0x334C => array(0x30E1, 0x30AC, 0x30C8, 0x30F3),
2192
-                    0x334D => array(0x30E1, 0x30FC, 0x30C8, 0x30EB), 0x334E => array(0x30E4, 0x30FC, 0x30C9), 0x334F => array(0x30E4, 0x30FC, 0x30EB),
2193
-                    0x3350 => array(0x30E6, 0x30A2, 0x30F3), 0x3351 => array(0x30EA, 0x30C3, 0x30C8, 0x30EB), 0x3352 => array(0x30EA, 0x30E9),
2194
-                    0x3353 => array(0x30EB, 0x30D4, 0x30FC), 0x3354 => array(0x30EB, 0x30FC, 0x30D6, 0x30EB), 0x3355 => array(0x30EC, 0x30E0),
2195
-                    0x3356 => array(0x30EC, 0x30F3, 0x30C8, 0x30B2, 0x30F3), 0x3357 => array(0x30EF, 0x30C3, 0x30C8), 0x3358 => array(0x30, 0x70B9),
2196
-                    0x3359 => array(0x31, 0x70B9), 0x335A => array(0x32, 0x70B9), 0x335B => array(0x33, 0x70B9),
2197
-                    0x335C => array(0x34, 0x70B9), 0x335D => array(0x35, 0x70B9), 0x335E => array(0x36, 0x70B9),
2198
-                    0x335F => array(0x37, 0x70B9), 0x3360 => array(0x38, 0x70B9), 0x3361 => array(0x39, 0x70B9),
2199
-                    0x3362 => array(0x31, 0x30, 0x70B9), 0x3363 => array(0x31, 0x31, 0x70B9), 0x3364 => array(0x31, 0x32, 0x70B9),
2200
-                    0x3365 => array(0x31, 0x33, 0x70B9), 0x3366 => array(0x31, 0x34, 0x70B9), 0x3367 => array(0x31, 0x35, 0x70B9),
2201
-                    0x3368 => array(0x31, 0x36, 0x70B9), 0x3369 => array(0x31, 0x37, 0x70B9), 0x336A => array(0x31, 0x38, 0x70B9),
2202
-                    0x336B => array(0x31, 0x39, 0x70B9), 0x336C => array(0x32, 0x30, 0x70B9), 0x336D => array(0x32, 0x31, 0x70B9),
2203
-                    0x336E => array(0x32, 0x32, 0x70B9), 0x336F => array(0x32, 0x33, 0x70B9), 0x3370 => array(0x32, 0x34, 0x70B9),
2204
-                    0x3371 => array(0x68, 0x70, 0x61), 0x3372 => array(0x64, 0x61), 0x3373 => array(0x61, 0x75),
2205
-                    0x3374 => array(0x62, 0x61, 0x72), 0x3375 => array(0x6F, 0x76), 0x3376 => array(0x70, 0x63),
2206
-                    0x3377 => array(0x64, 0x6D), 0x3378 => array(0x64, 0x6D, 0x32), 0x3379 => array(0x64, 0x6D, 0x33),
2207
-                    0x337A => array(0x69, 0x75), 0x337B => array(0x5E73, 0x6210), 0x337C => array(0x662D, 0x548C),
2208
-                    0x337D => array(0x5927, 0x6B63), 0x337E => array(0x660E, 0x6CBB), 0x337F => array(0x682A, 0x5F0F, 0x4F1A, 0x793E),
2209
-                    0x3380 => array(0x70, 0x61), 0x3381 => array(0x6E, 0x61), 0x3382 => array(0x3BC, 0x61),
2210
-                    0x3383 => array(0x6D, 0x61), 0x3384 => array(0x6B, 0x61), 0x3385 => array(0x6B, 0x62),
2211
-                    0x3386 => array(0x6D, 0x62), 0x3387 => array(0x67, 0x62), 0x3388 => array(0x63, 0x61, 0x6C),
2212
-                    0x3389 => array(0x6B, 0x63, 0x61, 0x6C), 0x338A => array(0x70, 0x66), 0x338B => array(0x6E, 0x66),
2213
-                    0x338C => array(0x3BC, 0x66), 0x338D => array(0x3BC, 0x67), 0x338E => array(0x6D, 0x67),
2214
-                    0x338F => array(0x6B, 0x67), 0x3390 => array(0x68, 0x7A), 0x3391 => array(0x6B, 0x68, 0x7A),
2215
-                    0x3392 => array(0x6D, 0x68, 0x7A), 0x3393 => array(0x67, 0x68, 0x7A), 0x3394 => array(0x74, 0x68, 0x7A),
2216
-                    0x3395 => array(0x3BC, 0x6C), 0x3396 => array(0x6D, 0x6C), 0x3397 => array(0x64, 0x6C),
2217
-                    0x3398 => array(0x6B, 0x6C), 0x3399 => array(0x66, 0x6D), 0x339A => array(0x6E, 0x6D),
2218
-                    0x339B => array(0x3BC, 0x6D), 0x339C => array(0x6D, 0x6D), 0x339D => array(0x63, 0x6D),
2219
-                    0x339E => array(0x6B, 0x6D), 0x339F => array(0x6D, 0x6D, 0x32), 0x33A0 => array(0x63, 0x6D, 0x32),
2220
-                    0x33A1 => array(0x6D, 0x32), 0x33A2 => array(0x6B, 0x6D, 0x32), 0x33A3 => array(0x6D, 0x6D, 0x33),
2221
-                    0x33A4 => array(0x63, 0x6D, 0x33), 0x33A5 => array(0x6D, 0x33), 0x33A6 => array(0x6B, 0x6D, 0x33),
2222
-                    0x33A7 => array(0x6D, 0x2215, 0x73), 0x33A8 => array(0x6D, 0x2215, 0x73, 0x32), 0x33A9 => array(0x70, 0x61),
2223
-                    0x33AA => array(0x6B, 0x70, 0x61), 0x33AB => array(0x6D, 0x70, 0x61), 0x33AC => array(0x67, 0x70, 0x61),
2224
-                    0x33AD => array(0x72, 0x61, 0x64), 0x33AE => array(0x72, 0x61, 0x64, 0x2215, 0x73), 0x33AF => array(0x72, 0x61, 0x64, 0x2215, 0x73, 0x32),
2225
-                    0x33B0 => array(0x70, 0x73), 0x33B1 => array(0x6E, 0x73), 0x33B2 => array(0x3BC, 0x73),
2226
-                    0x33B3 => array(0x6D, 0x73), 0x33B4 => array(0x70, 0x76), 0x33B5 => array(0x6E, 0x76),
2227
-                    0x33B6 => array(0x3BC, 0x76), 0x33B7 => array(0x6D, 0x76), 0x33B8 => array(0x6B, 0x76),
2228
-                    0x33B9 => array(0x6D, 0x76), 0x33BA => array(0x70, 0x77), 0x33BB => array(0x6E, 0x77),
2229
-                    0x33BC => array(0x3BC, 0x77), 0x33BD => array(0x6D, 0x77), 0x33BE => array(0x6B, 0x77),
2230
-                    0x33BF => array(0x6D, 0x77), 0x33C0 => array(0x6B, 0x3C9), 0x33C1 => array(0x6D, 0x3C9),
2231
-                    0x33C3 => array(0x62, 0x71), 0x33C4 => array(0x63, 0x63), 0x33C5 => array(0x63, 0x64),
2232
-                    0x33C6 => array(0x63, 0x2215, 0x6B, 0x67), 0x33C8 => array(0x64, 0x62), 0x33C9 => array(0x67, 0x79),
2233
-                    0x33CA => array(0x68, 0x61), 0x33CB => array(0x68, 0x70), 0x33CC => array(0x69, 0x6E),
2234
-                    0x33CD => array(0x6B, 0x6B), 0x33CE => array(0x6B, 0x6D), 0x33CF => array(0x6B, 0x74),
2235
-                    0x33D0 => array(0x6C, 0x6D), 0x33D1 => array(0x6C, 0x6E), 0x33D2 => array(0x6C, 0x6F, 0x67),
2236
-                    0x33D3 => array(0x6C, 0x78), 0x33D4 => array(0x6D, 0x62), 0x33D5 => array(0x6D, 0x69, 0x6C),
2237
-                    0x33D6 => array(0x6D, 0x6F, 0x6C), 0x33D7 => array(0x70, 0x68), 0x33D9 => array(0x70, 0x70, 0x6D),
2238
-                    0x33DA => array(0x70, 0x72), 0x33DB => array(0x73, 0x72), 0x33DC => array(0x73, 0x76),
2239
-                    0x33DD => array(0x77, 0x62), 0x33DE => array(0x76, 0x2215, 0x6D), 0x33DF => array(0x61, 0x2215, 0x6D),
2240
-                    0x33E0 => array(0x31, 0x65E5), 0x33E1 => array(0x32, 0x65E5), 0x33E2 => array(0x33, 0x65E5),
2241
-                    0x33E3 => array(0x34, 0x65E5), 0x33E4 => array(0x35, 0x65E5), 0x33E5 => array(0x36, 0x65E5),
2242
-                    0x33E6 => array(0x37, 0x65E5), 0x33E7 => array(0x38, 0x65E5), 0x33E8 => array(0x39, 0x65E5),
2243
-                    0x33E9 => array(0x31, 0x30, 0x65E5), 0x33EA => array(0x31, 0x31, 0x65E5), 0x33EB => array(0x31, 0x32, 0x65E5),
2244
-                    0x33EC => array(0x31, 0x33, 0x65E5), 0x33ED => array(0x31, 0x34, 0x65E5), 0x33EE => array(0x31, 0x35, 0x65E5),
2245
-                    0x33EF => array(0x31, 0x36, 0x65E5), 0x33F0 => array(0x31, 0x37, 0x65E5), 0x33F1 => array(0x31, 0x38, 0x65E5),
2246
-                    0x33F2 => array(0x31, 0x39, 0x65E5), 0x33F3 => array(0x32, 0x30, 0x65E5), 0x33F4 => array(0x32, 0x31, 0x65E5),
2247
-                    0x33F5 => array(0x32, 0x32, 0x65E5), 0x33F6 => array(0x32, 0x33, 0x65E5), 0x33F7 => array(0x32, 0x34, 0x65E5),
2248
-                    0x33F8 => array(0x32, 0x35, 0x65E5), 0x33F9 => array(0x32, 0x36, 0x65E5), 0x33FA => array(0x32, 0x37, 0x65E5),
2249
-                    0x33FB => array(0x32, 0x38, 0x65E5), 0x33FC => array(0x32, 0x39, 0x65E5), 0x33FD => array(0x33, 0x30, 0x65E5),
2250
-                    0x33FE => array(0x33, 0x31, 0x65E5), 0x33FF => array(0x67, 0x61, 0x6C), 0xA640 => array(0xA641),
2251
-                    0xA642 => array(0xA643), 0xA644 => array(0xA645), 0xA646 => array(0xA647),
2252
-                    0xA648 => array(0xA649), 0xA64A => array(0xA64B), 0xA64C => array(0xA64D),
2253
-                    0xA64E => array(0xA64F), 0xA650 => array(0xA651), 0xA652 => array(0xA653),
2254
-                    0xA654 => array(0xA655), 0xA656 => array(0xA657), 0xA658 => array(0xA659),
2255
-                    0xA65A => array(0xA65B), 0xA65C => array(0xA65D), 0xA65E => array(0xA65F),
2256
-                    0xA660 => array(0xA661), 0xA662 => array(0xA663), 0xA664 => array(0xA665),
2257
-                    0xA666 => array(0xA667), 0xA668 => array(0xA669), 0xA66A => array(0xA66B),
2258
-                    0xA66C => array(0xA66D), 0xA680 => array(0xA681), 0xA682 => array(0xA683),
2259
-                    0xA684 => array(0xA685), 0xA686 => array(0xA687), 0xA688 => array(0xA689),
2260
-                    0xA68A => array(0xA68B), 0xA68C => array(0xA68D), 0xA68E => array(0xA68F),
2261
-                    0xA690 => array(0xA691), 0xA692 => array(0xA693), 0xA694 => array(0xA695),
2262
-                    0xA696 => array(0xA697), 0xA698 => array(0xA699), 0xA69A => array(0xA69B),
2263
-                    0xA69C => array(0x44A), 0xA69D => array(0x44C), 0xA722 => array(0xA723),
2264
-                    0xA724 => array(0xA725), 0xA726 => array(0xA727), 0xA728 => array(0xA729),
2265
-                    0xA72A => array(0xA72B), 0xA72C => array(0xA72D), 0xA72E => array(0xA72F),
2266
-                    0xA732 => array(0xA733), 0xA734 => array(0xA735), 0xA736 => array(0xA737),
2267
-                    0xA738 => array(0xA739), 0xA73A => array(0xA73B), 0xA73C => array(0xA73D),
2268
-                    0xA73E => array(0xA73F), 0xA740 => array(0xA741), 0xA742 => array(0xA743),
2269
-                    0xA744 => array(0xA745), 0xA746 => array(0xA747), 0xA748 => array(0xA749),
2270
-                    0xA74A => array(0xA74B), 0xA74C => array(0xA74D), 0xA74E => array(0xA74F),
2271
-                    0xA750 => array(0xA751), 0xA752 => array(0xA753), 0xA754 => array(0xA755),
2272
-                    0xA756 => array(0xA757), 0xA758 => array(0xA759), 0xA75A => array(0xA75B),
2273
-                    0xA75C => array(0xA75D), 0xA75E => array(0xA75F), 0xA760 => array(0xA761),
2274
-                    0xA762 => array(0xA763), 0xA764 => array(0xA765), 0xA766 => array(0xA767),
2275
-                    0xA768 => array(0xA769), 0xA76A => array(0xA76B), 0xA76C => array(0xA76D),
2276
-                    0xA76E => array(0xA76F), 0xA770 => array(0xA76F), 0xA779 => array(0xA77A),
2277
-                    0xA77B => array(0xA77C), 0xA77D => array(0x1D79), 0xA77E => array(0xA77F),
2278
-                    0xA780 => array(0xA781), 0xA782 => array(0xA783), 0xA784 => array(0xA785),
2279
-                    0xA786 => array(0xA787), 0xA78B => array(0xA78C), 0xA78D => array(0x265),
2280
-                    0xA790 => array(0xA791), 0xA792 => array(0xA793), 0xA796 => array(0xA797),
2281
-                    0xA798 => array(0xA799), 0xA79A => array(0xA79B), 0xA79C => array(0xA79D),
2282
-                    0xA79E => array(0xA79F), 0xA7A0 => array(0xA7A1), 0xA7A2 => array(0xA7A3),
2283
-                    0xA7A4 => array(0xA7A5), 0xA7A6 => array(0xA7A7), 0xA7A8 => array(0xA7A9),
2284
-                    0xA7AA => array(0x266), 0xA7AB => array(0x25C), 0xA7AC => array(0x261),
2285
-                    0xA7AD => array(0x26C), 0xA7B0 => array(0x29E), 0xA7B1 => array(0x287),
2286
-                    0xA7F8 => array(0x127), 0xA7F9 => array(0x153), 0xAB5C => array(0xA727),
2287
-                    0xAB5D => array(0xAB37), 0xAB5E => array(0x26B), 0xAB5F => array(0xAB52),
2288
-                    0xF900 => array(0x8C48), 0xF901 => array(0x66F4), 0xF902 => array(0x8ECA),
2289
-                    0xF903 => array(0x8CC8), 0xF904 => array(0x6ED1), 0xF905 => array(0x4E32),
2290
-                    0xF906 => array(0x53E5), 0xF907 => array(0x9F9C), 0xF908 => array(0x9F9C),
2291
-                    0xF909 => array(0x5951), 0xF90A => array(0x91D1), 0xF90B => array(0x5587),
2292
-                    0xF90C => array(0x5948), 0xF90D => array(0x61F6), 0xF90E => array(0x7669),
2293
-                    0xF90F => array(0x7F85), 0xF910 => array(0x863F), 0xF911 => array(0x87BA),
2294
-                    0xF912 => array(0x88F8), 0xF913 => array(0x908F), 0xF914 => array(0x6A02),
2295
-                    0xF915 => array(0x6D1B), 0xF916 => array(0x70D9), 0xF917 => array(0x73DE),
2296
-                    0xF918 => array(0x843D), 0xF919 => array(0x916A), 0xF91A => array(0x99F1),
2297
-                    0xF91B => array(0x4E82), 0xF91C => array(0x5375), 0xF91D => array(0x6B04),
2298
-                    0xF91E => array(0x721B), 0xF91F => array(0x862D), 0xF920 => array(0x9E1E),
2299
-                    0xF921 => array(0x5D50), 0xF922 => array(0x6FEB), 0xF923 => array(0x85CD),
2300
-                    0xF924 => array(0x8964), 0xF925 => array(0x62C9), 0xF926 => array(0x81D8),
2301
-                    0xF927 => array(0x881F), 0xF928 => array(0x5ECA), 0xF929 => array(0x6717),
2302
-                    0xF92A => array(0x6D6A), 0xF92B => array(0x72FC), 0xF92C => array(0x90CE),
2303
-                    0xF92D => array(0x4F86), 0xF92E => array(0x51B7), 0xF92F => array(0x52DE),
2304
-                    0xF930 => array(0x64C4), 0xF931 => array(0x6AD3), 0xF932 => array(0x7210),
2305
-                    0xF933 => array(0x76E7), 0xF934 => array(0x8001), 0xF935 => array(0x8606),
2306
-                    0xF936 => array(0x865C), 0xF937 => array(0x8DEF), 0xF938 => array(0x9732),
2307
-                    0xF939 => array(0x9B6F), 0xF93A => array(0x9DFA), 0xF93B => array(0x788C),
2308
-                    0xF93C => array(0x797F), 0xF93D => array(0x7DA0), 0xF93E => array(0x83C9),
2309
-                    0xF93F => array(0x9304), 0xF940 => array(0x9E7F), 0xF941 => array(0x8AD6),
2310
-                    0xF942 => array(0x58DF), 0xF943 => array(0x5F04), 0xF944 => array(0x7C60),
2311
-                    0xF945 => array(0x807E), 0xF946 => array(0x7262), 0xF947 => array(0x78CA),
2312
-                    0xF948 => array(0x8CC2), 0xF949 => array(0x96F7), 0xF94A => array(0x58D8),
2313
-                    0xF94B => array(0x5C62), 0xF94C => array(0x6A13), 0xF94D => array(0x6DDA),
2314
-                    0xF94E => array(0x6F0F), 0xF94F => array(0x7D2F), 0xF950 => array(0x7E37),
2315
-                    0xF951 => array(0x964B), 0xF952 => array(0x52D2), 0xF953 => array(0x808B),
2316
-                    0xF954 => array(0x51DC), 0xF955 => array(0x51CC), 0xF956 => array(0x7A1C),
2317
-                    0xF957 => array(0x7DBE), 0xF958 => array(0x83F1), 0xF959 => array(0x9675),
2318
-                    0xF95A => array(0x8B80), 0xF95B => array(0x62CF), 0xF95C => array(0x6A02),
2319
-                    0xF95D => array(0x8AFE), 0xF95E => array(0x4E39), 0xF95F => array(0x5BE7),
2320
-                    0xF960 => array(0x6012), 0xF961 => array(0x7387), 0xF962 => array(0x7570),
2321
-                    0xF963 => array(0x5317), 0xF964 => array(0x78FB), 0xF965 => array(0x4FBF),
2322
-                    0xF966 => array(0x5FA9), 0xF967 => array(0x4E0D), 0xF968 => array(0x6CCC),
2323
-                    0xF969 => array(0x6578), 0xF96A => array(0x7D22), 0xF96B => array(0x53C3),
2324
-                    0xF96C => array(0x585E), 0xF96D => array(0x7701), 0xF96E => array(0x8449),
2325
-                    0xF96F => array(0x8AAA), 0xF970 => array(0x6BBA), 0xF971 => array(0x8FB0),
2326
-                    0xF972 => array(0x6C88), 0xF973 => array(0x62FE), 0xF974 => array(0x82E5),
2327
-                    0xF975 => array(0x63A0), 0xF976 => array(0x7565), 0xF977 => array(0x4EAE),
2328
-                    0xF978 => array(0x5169), 0xF979 => array(0x51C9), 0xF97A => array(0x6881),
2329
-                    0xF97B => array(0x7CE7), 0xF97C => array(0x826F), 0xF97D => array(0x8AD2),
2330
-                    0xF97E => array(0x91CF), 0xF97F => array(0x52F5), 0xF980 => array(0x5442),
2331
-                    0xF981 => array(0x5973), 0xF982 => array(0x5EEC), 0xF983 => array(0x65C5),
2332
-                    0xF984 => array(0x6FFE), 0xF985 => array(0x792A), 0xF986 => array(0x95AD),
2333
-                    0xF987 => array(0x9A6A), 0xF988 => array(0x9E97), 0xF989 => array(0x9ECE),
2334
-                    0xF98A => array(0x529B), 0xF98B => array(0x66C6), 0xF98C => array(0x6B77),
2335
-                    0xF98D => array(0x8F62), 0xF98E => array(0x5E74), 0xF98F => array(0x6190),
2336
-                    0xF990 => array(0x6200), 0xF991 => array(0x649A), 0xF992 => array(0x6F23),
2337
-                    0xF993 => array(0x7149), 0xF994 => array(0x7489), 0xF995 => array(0x79CA),
2338
-                    0xF996 => array(0x7DF4), 0xF997 => array(0x806F), 0xF998 => array(0x8F26),
2339
-                    0xF999 => array(0x84EE), 0xF99A => array(0x9023), 0xF99B => array(0x934A),
2340
-                    0xF99C => array(0x5217), 0xF99D => array(0x52A3), 0xF99E => array(0x54BD),
2341
-                    0xF99F => array(0x70C8), 0xF9A0 => array(0x88C2), 0xF9A1 => array(0x8AAA),
2342
-                    0xF9A2 => array(0x5EC9), 0xF9A3 => array(0x5FF5), 0xF9A4 => array(0x637B),
2343
-                    0xF9A5 => array(0x6BAE), 0xF9A6 => array(0x7C3E), 0xF9A7 => array(0x7375),
2344
-                    0xF9A8 => array(0x4EE4), 0xF9A9 => array(0x56F9), 0xF9AA => array(0x5BE7),
2345
-                    0xF9AB => array(0x5DBA), 0xF9AC => array(0x601C), 0xF9AD => array(0x73B2),
2346
-                    0xF9AE => array(0x7469), 0xF9AF => array(0x7F9A), 0xF9B0 => array(0x8046),
2347
-                    0xF9B1 => array(0x9234), 0xF9B2 => array(0x96F6), 0xF9B3 => array(0x9748),
2348
-                    0xF9B4 => array(0x9818), 0xF9B5 => array(0x4F8B), 0xF9B6 => array(0x79AE),
2349
-                    0xF9B7 => array(0x91B4), 0xF9B8 => array(0x96B8), 0xF9B9 => array(0x60E1),
2350
-                    0xF9BA => array(0x4E86), 0xF9BB => array(0x50DA), 0xF9BC => array(0x5BEE),
2351
-                    0xF9BD => array(0x5C3F), 0xF9BE => array(0x6599), 0xF9BF => array(0x6A02),
2352
-                    0xF9C0 => array(0x71CE), 0xF9C1 => array(0x7642), 0xF9C2 => array(0x84FC),
2353
-                    0xF9C3 => array(0x907C), 0xF9C4 => array(0x9F8D), 0xF9C5 => array(0x6688),
2354
-                    0xF9C6 => array(0x962E), 0xF9C7 => array(0x5289), 0xF9C8 => array(0x677B),
2355
-                    0xF9C9 => array(0x67F3), 0xF9CA => array(0x6D41), 0xF9CB => array(0x6E9C),
2356
-                    0xF9CC => array(0x7409), 0xF9CD => array(0x7559), 0xF9CE => array(0x786B),
2357
-                    0xF9CF => array(0x7D10), 0xF9D0 => array(0x985E), 0xF9D1 => array(0x516D),
2358
-                    0xF9D2 => array(0x622E), 0xF9D3 => array(0x9678), 0xF9D4 => array(0x502B),
2359
-                    0xF9D5 => array(0x5D19), 0xF9D6 => array(0x6DEA), 0xF9D7 => array(0x8F2A),
2360
-                    0xF9D8 => array(0x5F8B), 0xF9D9 => array(0x6144), 0xF9DA => array(0x6817),
2361
-                    0xF9DB => array(0x7387), 0xF9DC => array(0x9686), 0xF9DD => array(0x5229),
2362
-                    0xF9DE => array(0x540F), 0xF9DF => array(0x5C65), 0xF9E0 => array(0x6613),
2363
-                    0xF9E1 => array(0x674E), 0xF9E2 => array(0x68A8), 0xF9E3 => array(0x6CE5),
2364
-                    0xF9E4 => array(0x7406), 0xF9E5 => array(0x75E2), 0xF9E6 => array(0x7F79),
2365
-                    0xF9E7 => array(0x88CF), 0xF9E8 => array(0x88E1), 0xF9E9 => array(0x91CC),
2366
-                    0xF9EA => array(0x96E2), 0xF9EB => array(0x533F), 0xF9EC => array(0x6EBA),
2367
-                    0xF9ED => array(0x541D), 0xF9EE => array(0x71D0), 0xF9EF => array(0x7498),
2368
-                    0xF9F0 => array(0x85FA), 0xF9F1 => array(0x96A3), 0xF9F2 => array(0x9C57),
2369
-                    0xF9F3 => array(0x9E9F), 0xF9F4 => array(0x6797), 0xF9F5 => array(0x6DCB),
2370
-                    0xF9F6 => array(0x81E8), 0xF9F7 => array(0x7ACB), 0xF9F8 => array(0x7B20),
2371
-                    0xF9F9 => array(0x7C92), 0xF9FA => array(0x72C0), 0xF9FB => array(0x7099),
2372
-                    0xF9FC => array(0x8B58), 0xF9FD => array(0x4EC0), 0xF9FE => array(0x8336),
2373
-                    0xF9FF => array(0x523A), 0xFA00 => array(0x5207), 0xFA01 => array(0x5EA6),
2374
-                    0xFA02 => array(0x62D3), 0xFA03 => array(0x7CD6), 0xFA04 => array(0x5B85),
2375
-                    0xFA05 => array(0x6D1E), 0xFA06 => array(0x66B4), 0xFA07 => array(0x8F3B),
2376
-                    0xFA08 => array(0x884C), 0xFA09 => array(0x964D), 0xFA0A => array(0x898B),
2377
-                    0xFA0B => array(0x5ED3), 0xFA0C => array(0x5140), 0xFA0D => array(0x55C0),
2378
-                    0xFA10 => array(0x585A), 0xFA12 => array(0x6674), 0xFA15 => array(0x51DE),
2379
-                    0xFA16 => array(0x732A), 0xFA17 => array(0x76CA), 0xFA18 => array(0x793C),
2380
-                    0xFA19 => array(0x795E), 0xFA1A => array(0x7965), 0xFA1B => array(0x798F),
2381
-                    0xFA1C => array(0x9756), 0xFA1D => array(0x7CBE), 0xFA1E => array(0x7FBD),
2382
-                    0xFA20 => array(0x8612), 0xFA22 => array(0x8AF8), 0xFA25 => array(0x9038),
2383
-                    0xFA26 => array(0x90FD), 0xFA2A => array(0x98EF), 0xFA2B => array(0x98FC),
2384
-                    0xFA2C => array(0x9928), 0xFA2D => array(0x9DB4), 0xFA2E => array(0x90DE),
2385
-                    0xFA2F => array(0x96B7), 0xFA30 => array(0x4FAE), 0xFA31 => array(0x50E7),
2386
-                    0xFA32 => array(0x514D), 0xFA33 => array(0x52C9), 0xFA34 => array(0x52E4),
2387
-                    0xFA35 => array(0x5351), 0xFA36 => array(0x559D), 0xFA37 => array(0x5606),
2388
-                    0xFA38 => array(0x5668), 0xFA39 => array(0x5840), 0xFA3A => array(0x58A8),
2389
-                    0xFA3B => array(0x5C64), 0xFA3C => array(0x5C6E), 0xFA3D => array(0x6094),
2390
-                    0xFA3E => array(0x6168), 0xFA3F => array(0x618E), 0xFA40 => array(0x61F2),
2391
-                    0xFA41 => array(0x654F), 0xFA42 => array(0x65E2), 0xFA43 => array(0x6691),
2392
-                    0xFA44 => array(0x6885), 0xFA45 => array(0x6D77), 0xFA46 => array(0x6E1A),
2393
-                    0xFA47 => array(0x6F22), 0xFA48 => array(0x716E), 0xFA49 => array(0x722B),
2394
-                    0xFA4A => array(0x7422), 0xFA4B => array(0x7891), 0xFA4C => array(0x793E),
2395
-                    0xFA4D => array(0x7949), 0xFA4E => array(0x7948), 0xFA4F => array(0x7950),
2396
-                    0xFA50 => array(0x7956), 0xFA51 => array(0x795D), 0xFA52 => array(0x798D),
2397
-                    0xFA53 => array(0x798E), 0xFA54 => array(0x7A40), 0xFA55 => array(0x7A81),
2398
-                    0xFA56 => array(0x7BC0), 0xFA57 => array(0x7DF4), 0xFA58 => array(0x7E09),
2399
-                    0xFA59 => array(0x7E41), 0xFA5A => array(0x7F72), 0xFA5B => array(0x8005),
2400
-                    0xFA5C => array(0x81ED), 0xFA5D => array(0x8279), 0xFA5E => array(0x8279),
2401
-                    0xFA5F => array(0x8457), 0xFA60 => array(0x8910), 0xFA61 => array(0x8996),
2402
-                    0xFA62 => array(0x8B01), 0xFA63 => array(0x8B39), 0xFA64 => array(0x8CD3),
2403
-                    0xFA65 => array(0x8D08), 0xFA66 => array(0x8FB6), 0xFA67 => array(0x9038),
2404
-                    0xFA68 => array(0x96E3), 0xFA69 => array(0x97FF), 0xFA6A => array(0x983B),
2405
-                    0xFA6B => array(0x6075), 0xFA6C => array(0x242EE), 0xFA6D => array(0x8218),
2406
-                    0xFA70 => array(0x4E26), 0xFA71 => array(0x51B5), 0xFA72 => array(0x5168),
2407
-                    0xFA73 => array(0x4F80), 0xFA74 => array(0x5145), 0xFA75 => array(0x5180),
2408
-                    0xFA76 => array(0x52C7), 0xFA77 => array(0x52FA), 0xFA78 => array(0x559D),
2409
-                    0xFA79 => array(0x5555), 0xFA7A => array(0x5599), 0xFA7B => array(0x55E2),
2410
-                    0xFA7C => array(0x585A), 0xFA7D => array(0x58B3), 0xFA7E => array(0x5944),
2411
-                    0xFA7F => array(0x5954), 0xFA80 => array(0x5A62), 0xFA81 => array(0x5B28),
2412
-                    0xFA82 => array(0x5ED2), 0xFA83 => array(0x5ED9), 0xFA84 => array(0x5F69),
2413
-                    0xFA85 => array(0x5FAD), 0xFA86 => array(0x60D8), 0xFA87 => array(0x614E),
2414
-                    0xFA88 => array(0x6108), 0xFA89 => array(0x618E), 0xFA8A => array(0x6160),
2415
-                    0xFA8B => array(0x61F2), 0xFA8C => array(0x6234), 0xFA8D => array(0x63C4),
2416
-                    0xFA8E => array(0x641C), 0xFA8F => array(0x6452), 0xFA90 => array(0x6556),
2417
-                    0xFA91 => array(0x6674), 0xFA92 => array(0x6717), 0xFA93 => array(0x671B),
2418
-                    0xFA94 => array(0x6756), 0xFA95 => array(0x6B79), 0xFA96 => array(0x6BBA),
2419
-                    0xFA97 => array(0x6D41), 0xFA98 => array(0x6EDB), 0xFA99 => array(0x6ECB),
2420
-                    0xFA9A => array(0x6F22), 0xFA9B => array(0x701E), 0xFA9C => array(0x716E),
2421
-                    0xFA9D => array(0x77A7), 0xFA9E => array(0x7235), 0xFA9F => array(0x72AF),
2422
-                    0xFAA0 => array(0x732A), 0xFAA1 => array(0x7471), 0xFAA2 => array(0x7506),
2423
-                    0xFAA3 => array(0x753B), 0xFAA4 => array(0x761D), 0xFAA5 => array(0x761F),
2424
-                    0xFAA6 => array(0x76CA), 0xFAA7 => array(0x76DB), 0xFAA8 => array(0x76F4),
2425
-                    0xFAA9 => array(0x774A), 0xFAAA => array(0x7740), 0xFAAB => array(0x78CC),
2426
-                    0xFAAC => array(0x7AB1), 0xFAAD => array(0x7BC0), 0xFAAE => array(0x7C7B),
2427
-                    0xFAAF => array(0x7D5B), 0xFAB0 => array(0x7DF4), 0xFAB1 => array(0x7F3E),
2428
-                    0xFAB2 => array(0x8005), 0xFAB3 => array(0x8352), 0xFAB4 => array(0x83EF),
2429
-                    0xFAB5 => array(0x8779), 0xFAB6 => array(0x8941), 0xFAB7 => array(0x8986),
2430
-                    0xFAB8 => array(0x8996), 0xFAB9 => array(0x8ABF), 0xFABA => array(0x8AF8),
2431
-                    0xFABB => array(0x8ACB), 0xFABC => array(0x8B01), 0xFABD => array(0x8AFE),
2432
-                    0xFABE => array(0x8AED), 0xFABF => array(0x8B39), 0xFAC0 => array(0x8B8A),
2433
-                    0xFAC1 => array(0x8D08), 0xFAC2 => array(0x8F38), 0xFAC3 => array(0x9072),
2434
-                    0xFAC4 => array(0x9199), 0xFAC5 => array(0x9276), 0xFAC6 => array(0x967C),
2435
-                    0xFAC7 => array(0x96E3), 0xFAC8 => array(0x9756), 0xFAC9 => array(0x97DB),
2436
-                    0xFACA => array(0x97FF), 0xFACB => array(0x980B), 0xFACC => array(0x983B),
2437
-                    0xFACD => array(0x9B12), 0xFACE => array(0x9F9C), 0xFACF => array(0x2284A),
2438
-                    0xFAD0 => array(0x22844), 0xFAD1 => array(0x233D5), 0xFAD2 => array(0x3B9D),
2439
-                    0xFAD3 => array(0x4018), 0xFAD4 => array(0x4039), 0xFAD5 => array(0x25249),
2440
-                    0xFAD6 => array(0x25CD0), 0xFAD7 => array(0x27ED3), 0xFAD8 => array(0x9F43),
2441
-                    0xFAD9 => array(0x9F8E), 0xFB00 => array(0x66, 0x66), 0xFB01 => array(0x66, 0x69),
2442
-                    0xFB02 => array(0x66, 0x6C), 0xFB03 => array(0x66, 0x66, 0x69), 0xFB04 => array(0x66, 0x66, 0x6C),
2443
-                    0xFB05 => array(0x73, 0x74), 0xFB06 => array(0x73, 0x74), 0xFB13 => array(0x574, 0x576),
2444
-                    0xFB14 => array(0x574, 0x565), 0xFB15 => array(0x574, 0x56B), 0xFB16 => array(0x57E, 0x576),
2445
-                    0xFB17 => array(0x574, 0x56D), 0xFB1D => array(0x5D9, 0x5B4), 0xFB1F => array(0x5F2, 0x5B7),
2446
-                    0xFB20 => array(0x5E2), 0xFB21 => array(0x5D0), 0xFB22 => array(0x5D3),
2447
-                    0xFB23 => array(0x5D4), 0xFB24 => array(0x5DB), 0xFB25 => array(0x5DC),
2448
-                    0xFB26 => array(0x5DD), 0xFB27 => array(0x5E8), 0xFB28 => array(0x5EA),
2449
-                    0xFB2A => array(0x5E9, 0x5C1), 0xFB2B => array(0x5E9, 0x5C2), 0xFB2C => array(0x5E9, 0x5BC, 0x5C1),
2450
-                    0xFB2D => array(0x5E9, 0x5BC, 0x5C2), 0xFB2E => array(0x5D0, 0x5B7), 0xFB2F => array(0x5D0, 0x5B8),
2451
-                    0xFB30 => array(0x5D0, 0x5BC), 0xFB31 => array(0x5D1, 0x5BC), 0xFB32 => array(0x5D2, 0x5BC),
2452
-                    0xFB33 => array(0x5D3, 0x5BC), 0xFB34 => array(0x5D4, 0x5BC), 0xFB35 => array(0x5D5, 0x5BC),
2453
-                    0xFB36 => array(0x5D6, 0x5BC), 0xFB38 => array(0x5D8, 0x5BC), 0xFB39 => array(0x5D9, 0x5BC),
2454
-                    0xFB3A => array(0x5DA, 0x5BC), 0xFB3B => array(0x5DB, 0x5BC), 0xFB3C => array(0x5DC, 0x5BC),
2455
-                    0xFB3E => array(0x5DE, 0x5BC), 0xFB40 => array(0x5E0, 0x5BC), 0xFB41 => array(0x5E1, 0x5BC),
2456
-                    0xFB43 => array(0x5E3, 0x5BC), 0xFB44 => array(0x5E4, 0x5BC), 0xFB46 => array(0x5E6, 0x5BC),
2457
-                    0xFB47 => array(0x5E7, 0x5BC), 0xFB48 => array(0x5E8, 0x5BC), 0xFB49 => array(0x5E9, 0x5BC),
2458
-                    0xFB4A => array(0x5EA, 0x5BC), 0xFB4B => array(0x5D5, 0x5B9), 0xFB4C => array(0x5D1, 0x5BF),
2459
-                    0xFB4D => array(0x5DB, 0x5BF), 0xFB4E => array(0x5E4, 0x5BF), 0xFB4F => array(0x5D0, 0x5DC),
2460
-                    0xFB50 => array(0x671), 0xFB51 => array(0x671), 0xFB52 => array(0x67B),
2461
-                    0xFB53 => array(0x67B), 0xFB54 => array(0x67B), 0xFB55 => array(0x67B),
2462
-                    0xFB56 => array(0x67E), 0xFB57 => array(0x67E), 0xFB58 => array(0x67E),
2463
-                    0xFB59 => array(0x67E), 0xFB5A => array(0x680), 0xFB5B => array(0x680),
2464
-                    0xFB5C => array(0x680), 0xFB5D => array(0x680), 0xFB5E => array(0x67A),
2465
-                    0xFB5F => array(0x67A), 0xFB60 => array(0x67A), 0xFB61 => array(0x67A),
2466
-                    0xFB62 => array(0x67F), 0xFB63 => array(0x67F), 0xFB64 => array(0x67F),
2467
-                    0xFB65 => array(0x67F), 0xFB66 => array(0x679), 0xFB67 => array(0x679),
2468
-                    0xFB68 => array(0x679), 0xFB69 => array(0x679), 0xFB6A => array(0x6A4),
2469
-                    0xFB6B => array(0x6A4), 0xFB6C => array(0x6A4), 0xFB6D => array(0x6A4),
2470
-                    0xFB6E => array(0x6A6), 0xFB6F => array(0x6A6), 0xFB70 => array(0x6A6),
2471
-                    0xFB71 => array(0x6A6), 0xFB72 => array(0x684), 0xFB73 => array(0x684),
2472
-                    0xFB74 => array(0x684), 0xFB75 => array(0x684), 0xFB76 => array(0x683),
2473
-                    0xFB77 => array(0x683), 0xFB78 => array(0x683), 0xFB79 => array(0x683),
2474
-                    0xFB7A => array(0x686), 0xFB7B => array(0x686), 0xFB7C => array(0x686),
2475
-                    0xFB7D => array(0x686), 0xFB7E => array(0x687), 0xFB7F => array(0x687),
2476
-                    0xFB80 => array(0x687), 0xFB81 => array(0x687), 0xFB82 => array(0x68D),
2477
-                    0xFB83 => array(0x68D), 0xFB84 => array(0x68C), 0xFB85 => array(0x68C),
2478
-                    0xFB86 => array(0x68E), 0xFB87 => array(0x68E), 0xFB88 => array(0x688),
2479
-                    0xFB89 => array(0x688), 0xFB8A => array(0x698), 0xFB8B => array(0x698),
2480
-                    0xFB8C => array(0x691), 0xFB8D => array(0x691), 0xFB8E => array(0x6A9),
2481
-                    0xFB8F => array(0x6A9), 0xFB90 => array(0x6A9), 0xFB91 => array(0x6A9),
2482
-                    0xFB92 => array(0x6AF), 0xFB93 => array(0x6AF), 0xFB94 => array(0x6AF),
2483
-                    0xFB95 => array(0x6AF), 0xFB96 => array(0x6B3), 0xFB97 => array(0x6B3),
2484
-                    0xFB98 => array(0x6B3), 0xFB99 => array(0x6B3), 0xFB9A => array(0x6B1),
2485
-                    0xFB9B => array(0x6B1), 0xFB9C => array(0x6B1), 0xFB9D => array(0x6B1),
2486
-                    0xFB9E => array(0x6BA), 0xFB9F => array(0x6BA), 0xFBA0 => array(0x6BB),
2487
-                    0xFBA1 => array(0x6BB), 0xFBA2 => array(0x6BB), 0xFBA3 => array(0x6BB),
2488
-                    0xFBA4 => array(0x6C0), 0xFBA5 => array(0x6C0), 0xFBA6 => array(0x6C1),
2489
-                    0xFBA7 => array(0x6C1), 0xFBA8 => array(0x6C1), 0xFBA9 => array(0x6C1),
2490
-                    0xFBAA => array(0x6BE), 0xFBAB => array(0x6BE), 0xFBAC => array(0x6BE),
2491
-                    0xFBAD => array(0x6BE), 0xFBAE => array(0x6D2), 0xFBAF => array(0x6D2),
2492
-                    0xFBB0 => array(0x6D3), 0xFBB1 => array(0x6D3), 0xFBD3 => array(0x6AD),
2493
-                    0xFBD4 => array(0x6AD), 0xFBD5 => array(0x6AD), 0xFBD6 => array(0x6AD),
2494
-                    0xFBD7 => array(0x6C7), 0xFBD8 => array(0x6C7), 0xFBD9 => array(0x6C6),
2495
-                    0xFBDA => array(0x6C6), 0xFBDB => array(0x6C8), 0xFBDC => array(0x6C8),
2496
-                    0xFBDD => array(0x6C7, 0x674), 0xFBDE => array(0x6CB), 0xFBDF => array(0x6CB),
2497
-                    0xFBE0 => array(0x6C5), 0xFBE1 => array(0x6C5), 0xFBE2 => array(0x6C9),
2498
-                    0xFBE3 => array(0x6C9), 0xFBE4 => array(0x6D0), 0xFBE5 => array(0x6D0),
2499
-                    0xFBE6 => array(0x6D0), 0xFBE7 => array(0x6D0), 0xFBE8 => array(0x649),
2500
-                    0xFBE9 => array(0x649), 0xFBEA => array(0x626, 0x627), 0xFBEB => array(0x626, 0x627),
2501
-                    0xFBEC => array(0x626, 0x6D5), 0xFBED => array(0x626, 0x6D5), 0xFBEE => array(0x626, 0x648),
2502
-                    0xFBEF => array(0x626, 0x648), 0xFBF0 => array(0x626, 0x6C7), 0xFBF1 => array(0x626, 0x6C7),
2503
-                    0xFBF2 => array(0x626, 0x6C6), 0xFBF3 => array(0x626, 0x6C6), 0xFBF4 => array(0x626, 0x6C8),
2504
-                    0xFBF5 => array(0x626, 0x6C8), 0xFBF6 => array(0x626, 0x6D0), 0xFBF7 => array(0x626, 0x6D0),
2505
-                    0xFBF8 => array(0x626, 0x6D0), 0xFBF9 => array(0x626, 0x649), 0xFBFA => array(0x626, 0x649),
2506
-                    0xFBFB => array(0x626, 0x649), 0xFBFC => array(0x6CC), 0xFBFD => array(0x6CC),
2507
-                    0xFBFE => array(0x6CC), 0xFBFF => array(0x6CC), 0xFC00 => array(0x626, 0x62C),
2508
-                    0xFC01 => array(0x626, 0x62D), 0xFC02 => array(0x626, 0x645), 0xFC03 => array(0x626, 0x649),
2509
-                    0xFC04 => array(0x626, 0x64A), 0xFC05 => array(0x628, 0x62C), 0xFC06 => array(0x628, 0x62D),
2510
-                    0xFC07 => array(0x628, 0x62E), 0xFC08 => array(0x628, 0x645), 0xFC09 => array(0x628, 0x649),
2511
-                    0xFC0A => array(0x628, 0x64A), 0xFC0B => array(0x62A, 0x62C), 0xFC0C => array(0x62A, 0x62D),
2512
-                    0xFC0D => array(0x62A, 0x62E), 0xFC0E => array(0x62A, 0x645), 0xFC0F => array(0x62A, 0x649),
2513
-                    0xFC10 => array(0x62A, 0x64A), 0xFC11 => array(0x62B, 0x62C), 0xFC12 => array(0x62B, 0x645),
2514
-                    0xFC13 => array(0x62B, 0x649), 0xFC14 => array(0x62B, 0x64A), 0xFC15 => array(0x62C, 0x62D),
2515
-                    0xFC16 => array(0x62C, 0x645), 0xFC17 => array(0x62D, 0x62C), 0xFC18 => array(0x62D, 0x645),
2516
-                    0xFC19 => array(0x62E, 0x62C), 0xFC1A => array(0x62E, 0x62D), 0xFC1B => array(0x62E, 0x645),
2517
-                    0xFC1C => array(0x633, 0x62C), 0xFC1D => array(0x633, 0x62D), 0xFC1E => array(0x633, 0x62E),
2518
-                    0xFC1F => array(0x633, 0x645), 0xFC20 => array(0x635, 0x62D), 0xFC21 => array(0x635, 0x645),
2519
-                    0xFC22 => array(0x636, 0x62C), 0xFC23 => array(0x636, 0x62D), 0xFC24 => array(0x636, 0x62E),
2520
-                    0xFC25 => array(0x636, 0x645), 0xFC26 => array(0x637, 0x62D), 0xFC27 => array(0x637, 0x645),
2521
-                    0xFC28 => array(0x638, 0x645), 0xFC29 => array(0x639, 0x62C), 0xFC2A => array(0x639, 0x645),
2522
-                    0xFC2B => array(0x63A, 0x62C), 0xFC2C => array(0x63A, 0x645), 0xFC2D => array(0x641, 0x62C),
2523
-                    0xFC2E => array(0x641, 0x62D), 0xFC2F => array(0x641, 0x62E), 0xFC30 => array(0x641, 0x645),
2524
-                    0xFC31 => array(0x641, 0x649), 0xFC32 => array(0x641, 0x64A), 0xFC33 => array(0x642, 0x62D),
2525
-                    0xFC34 => array(0x642, 0x645), 0xFC35 => array(0x642, 0x649), 0xFC36 => array(0x642, 0x64A),
2526
-                    0xFC37 => array(0x643, 0x627), 0xFC38 => array(0x643, 0x62C), 0xFC39 => array(0x643, 0x62D),
2527
-                    0xFC3A => array(0x643, 0x62E), 0xFC3B => array(0x643, 0x644), 0xFC3C => array(0x643, 0x645),
2528
-                    0xFC3D => array(0x643, 0x649), 0xFC3E => array(0x643, 0x64A), 0xFC3F => array(0x644, 0x62C),
2529
-                    0xFC40 => array(0x644, 0x62D), 0xFC41 => array(0x644, 0x62E), 0xFC42 => array(0x644, 0x645),
2530
-                    0xFC43 => array(0x644, 0x649), 0xFC44 => array(0x644, 0x64A), 0xFC45 => array(0x645, 0x62C),
2531
-                    0xFC46 => array(0x645, 0x62D), 0xFC47 => array(0x645, 0x62E), 0xFC48 => array(0x645, 0x645),
2532
-                    0xFC49 => array(0x645, 0x649), 0xFC4A => array(0x645, 0x64A), 0xFC4B => array(0x646, 0x62C),
2533
-                    0xFC4C => array(0x646, 0x62D), 0xFC4D => array(0x646, 0x62E), 0xFC4E => array(0x646, 0x645),
2534
-                    0xFC4F => array(0x646, 0x649), 0xFC50 => array(0x646, 0x64A), 0xFC51 => array(0x647, 0x62C),
2535
-                    0xFC52 => array(0x647, 0x645), 0xFC53 => array(0x647, 0x649), 0xFC54 => array(0x647, 0x64A),
2536
-                    0xFC55 => array(0x64A, 0x62C), 0xFC56 => array(0x64A, 0x62D), 0xFC57 => array(0x64A, 0x62E),
2537
-                    0xFC58 => array(0x64A, 0x645), 0xFC59 => array(0x64A, 0x649), 0xFC5A => array(0x64A, 0x64A),
2538
-                    0xFC5B => array(0x630, 0x670), 0xFC5C => array(0x631, 0x670), 0xFC5D => array(0x649, 0x670),
2539
-                    0xFC64 => array(0x626, 0x631), 0xFC65 => array(0x626, 0x632), 0xFC66 => array(0x626, 0x645),
2540
-                    0xFC67 => array(0x626, 0x646), 0xFC68 => array(0x626, 0x649), 0xFC69 => array(0x626, 0x64A),
2541
-                    0xFC6A => array(0x628, 0x631), 0xFC6B => array(0x628, 0x632), 0xFC6C => array(0x628, 0x645),
2542
-                    0xFC6D => array(0x628, 0x646), 0xFC6E => array(0x628, 0x649), 0xFC6F => array(0x628, 0x64A),
2543
-                    0xFC70 => array(0x62A, 0x631), 0xFC71 => array(0x62A, 0x632), 0xFC72 => array(0x62A, 0x645),
2544
-                    0xFC73 => array(0x62A, 0x646), 0xFC74 => array(0x62A, 0x649), 0xFC75 => array(0x62A, 0x64A),
2545
-                    0xFC76 => array(0x62B, 0x631), 0xFC77 => array(0x62B, 0x632), 0xFC78 => array(0x62B, 0x645),
2546
-                    0xFC79 => array(0x62B, 0x646), 0xFC7A => array(0x62B, 0x649), 0xFC7B => array(0x62B, 0x64A),
2547
-                    0xFC7C => array(0x641, 0x649), 0xFC7D => array(0x641, 0x64A), 0xFC7E => array(0x642, 0x649),
2548
-                    0xFC7F => array(0x642, 0x64A), 0xFC80 => array(0x643, 0x627), 0xFC81 => array(0x643, 0x644),
2549
-                    0xFC82 => array(0x643, 0x645), 0xFC83 => array(0x643, 0x649), 0xFC84 => array(0x643, 0x64A),
2550
-                    0xFC85 => array(0x644, 0x645), 0xFC86 => array(0x644, 0x649), 0xFC87 => array(0x644, 0x64A),
2551
-                    0xFC88 => array(0x645, 0x627), 0xFC89 => array(0x645, 0x645), 0xFC8A => array(0x646, 0x631),
2552
-                    0xFC8B => array(0x646, 0x632), 0xFC8C => array(0x646, 0x645), 0xFC8D => array(0x646, 0x646),
2553
-                    0xFC8E => array(0x646, 0x649), 0xFC8F => array(0x646, 0x64A), 0xFC90 => array(0x649, 0x670),
2554
-                    0xFC91 => array(0x64A, 0x631), 0xFC92 => array(0x64A, 0x632), 0xFC93 => array(0x64A, 0x645),
2555
-                    0xFC94 => array(0x64A, 0x646), 0xFC95 => array(0x64A, 0x649), 0xFC96 => array(0x64A, 0x64A),
2556
-                    0xFC97 => array(0x626, 0x62C), 0xFC98 => array(0x626, 0x62D), 0xFC99 => array(0x626, 0x62E),
2557
-                    0xFC9A => array(0x626, 0x645), 0xFC9B => array(0x626, 0x647), 0xFC9C => array(0x628, 0x62C),
2558
-                    0xFC9D => array(0x628, 0x62D), 0xFC9E => array(0x628, 0x62E), 0xFC9F => array(0x628, 0x645),
2559
-                    0xFCA0 => array(0x628, 0x647), 0xFCA1 => array(0x62A, 0x62C), 0xFCA2 => array(0x62A, 0x62D),
2560
-                    0xFCA3 => array(0x62A, 0x62E), 0xFCA4 => array(0x62A, 0x645), 0xFCA5 => array(0x62A, 0x647),
2561
-                    0xFCA6 => array(0x62B, 0x645), 0xFCA7 => array(0x62C, 0x62D), 0xFCA8 => array(0x62C, 0x645),
2562
-                    0xFCA9 => array(0x62D, 0x62C), 0xFCAA => array(0x62D, 0x645), 0xFCAB => array(0x62E, 0x62C),
2563
-                    0xFCAC => array(0x62E, 0x645), 0xFCAD => array(0x633, 0x62C), 0xFCAE => array(0x633, 0x62D),
2564
-                    0xFCAF => array(0x633, 0x62E), 0xFCB0 => array(0x633, 0x645), 0xFCB1 => array(0x635, 0x62D),
2565
-                    0xFCB2 => array(0x635, 0x62E), 0xFCB3 => array(0x635, 0x645), 0xFCB4 => array(0x636, 0x62C),
2566
-                    0xFCB5 => array(0x636, 0x62D), 0xFCB6 => array(0x636, 0x62E), 0xFCB7 => array(0x636, 0x645),
2567
-                    0xFCB8 => array(0x637, 0x62D), 0xFCB9 => array(0x638, 0x645), 0xFCBA => array(0x639, 0x62C),
2568
-                    0xFCBB => array(0x639, 0x645), 0xFCBC => array(0x63A, 0x62C), 0xFCBD => array(0x63A, 0x645),
2569
-                    0xFCBE => array(0x641, 0x62C), 0xFCBF => array(0x641, 0x62D), 0xFCC0 => array(0x641, 0x62E),
2570
-                    0xFCC1 => array(0x641, 0x645), 0xFCC2 => array(0x642, 0x62D), 0xFCC3 => array(0x642, 0x645),
2571
-                    0xFCC4 => array(0x643, 0x62C), 0xFCC5 => array(0x643, 0x62D), 0xFCC6 => array(0x643, 0x62E),
2572
-                    0xFCC7 => array(0x643, 0x644), 0xFCC8 => array(0x643, 0x645), 0xFCC9 => array(0x644, 0x62C),
2573
-                    0xFCCA => array(0x644, 0x62D), 0xFCCB => array(0x644, 0x62E), 0xFCCC => array(0x644, 0x645),
2574
-                    0xFCCD => array(0x644, 0x647), 0xFCCE => array(0x645, 0x62C), 0xFCCF => array(0x645, 0x62D),
2575
-                    0xFCD0 => array(0x645, 0x62E), 0xFCD1 => array(0x645, 0x645), 0xFCD2 => array(0x646, 0x62C),
2576
-                    0xFCD3 => array(0x646, 0x62D), 0xFCD4 => array(0x646, 0x62E), 0xFCD5 => array(0x646, 0x645),
2577
-                    0xFCD6 => array(0x646, 0x647), 0xFCD7 => array(0x647, 0x62C), 0xFCD8 => array(0x647, 0x645),
2578
-                    0xFCD9 => array(0x647, 0x670), 0xFCDA => array(0x64A, 0x62C), 0xFCDB => array(0x64A, 0x62D),
2579
-                    0xFCDC => array(0x64A, 0x62E), 0xFCDD => array(0x64A, 0x645), 0xFCDE => array(0x64A, 0x647),
2580
-                    0xFCDF => array(0x626, 0x645), 0xFCE0 => array(0x626, 0x647), 0xFCE1 => array(0x628, 0x645),
2581
-                    0xFCE2 => array(0x628, 0x647), 0xFCE3 => array(0x62A, 0x645), 0xFCE4 => array(0x62A, 0x647),
2582
-                    0xFCE5 => array(0x62B, 0x645), 0xFCE6 => array(0x62B, 0x647), 0xFCE7 => array(0x633, 0x645),
2583
-                    0xFCE8 => array(0x633, 0x647), 0xFCE9 => array(0x634, 0x645), 0xFCEA => array(0x634, 0x647),
2584
-                    0xFCEB => array(0x643, 0x644), 0xFCEC => array(0x643, 0x645), 0xFCED => array(0x644, 0x645),
2585
-                    0xFCEE => array(0x646, 0x645), 0xFCEF => array(0x646, 0x647), 0xFCF0 => array(0x64A, 0x645),
2586
-                    0xFCF1 => array(0x64A, 0x647), 0xFCF2 => array(0x640, 0x64E, 0x651), 0xFCF3 => array(0x640, 0x64F, 0x651),
2587
-                    0xFCF4 => array(0x640, 0x650, 0x651), 0xFCF5 => array(0x637, 0x649), 0xFCF6 => array(0x637, 0x64A),
2588
-                    0xFCF7 => array(0x639, 0x649), 0xFCF8 => array(0x639, 0x64A), 0xFCF9 => array(0x63A, 0x649),
2589
-                    0xFCFA => array(0x63A, 0x64A), 0xFCFB => array(0x633, 0x649), 0xFCFC => array(0x633, 0x64A),
2590
-                    0xFCFD => array(0x634, 0x649), 0xFCFE => array(0x634, 0x64A), 0xFCFF => array(0x62D, 0x649),
2591
-                    0xFD00 => array(0x62D, 0x64A), 0xFD01 => array(0x62C, 0x649), 0xFD02 => array(0x62C, 0x64A),
2592
-                    0xFD03 => array(0x62E, 0x649), 0xFD04 => array(0x62E, 0x64A), 0xFD05 => array(0x635, 0x649),
2593
-                    0xFD06 => array(0x635, 0x64A), 0xFD07 => array(0x636, 0x649), 0xFD08 => array(0x636, 0x64A),
2594
-                    0xFD09 => array(0x634, 0x62C), 0xFD0A => array(0x634, 0x62D), 0xFD0B => array(0x634, 0x62E),
2595
-                    0xFD0C => array(0x634, 0x645), 0xFD0D => array(0x634, 0x631), 0xFD0E => array(0x633, 0x631),
2596
-                    0xFD0F => array(0x635, 0x631), 0xFD10 => array(0x636, 0x631), 0xFD11 => array(0x637, 0x649),
2597
-                    0xFD12 => array(0x637, 0x64A), 0xFD13 => array(0x639, 0x649), 0xFD14 => array(0x639, 0x64A),
2598
-                    0xFD15 => array(0x63A, 0x649), 0xFD16 => array(0x63A, 0x64A), 0xFD17 => array(0x633, 0x649),
2599
-                    0xFD18 => array(0x633, 0x64A), 0xFD19 => array(0x634, 0x649), 0xFD1A => array(0x634, 0x64A),
2600
-                    0xFD1B => array(0x62D, 0x649), 0xFD1C => array(0x62D, 0x64A), 0xFD1D => array(0x62C, 0x649),
2601
-                    0xFD1E => array(0x62C, 0x64A), 0xFD1F => array(0x62E, 0x649), 0xFD20 => array(0x62E, 0x64A),
2602
-                    0xFD21 => array(0x635, 0x649), 0xFD22 => array(0x635, 0x64A), 0xFD23 => array(0x636, 0x649),
2603
-                    0xFD24 => array(0x636, 0x64A), 0xFD25 => array(0x634, 0x62C), 0xFD26 => array(0x634, 0x62D),
2604
-                    0xFD27 => array(0x634, 0x62E), 0xFD28 => array(0x634, 0x645), 0xFD29 => array(0x634, 0x631),
2605
-                    0xFD2A => array(0x633, 0x631), 0xFD2B => array(0x635, 0x631), 0xFD2C => array(0x636, 0x631),
2606
-                    0xFD2D => array(0x634, 0x62C), 0xFD2E => array(0x634, 0x62D), 0xFD2F => array(0x634, 0x62E),
2607
-                    0xFD30 => array(0x634, 0x645), 0xFD31 => array(0x633, 0x647), 0xFD32 => array(0x634, 0x647),
2608
-                    0xFD33 => array(0x637, 0x645), 0xFD34 => array(0x633, 0x62C), 0xFD35 => array(0x633, 0x62D),
2609
-                    0xFD36 => array(0x633, 0x62E), 0xFD37 => array(0x634, 0x62C), 0xFD38 => array(0x634, 0x62D),
2610
-                    0xFD39 => array(0x634, 0x62E), 0xFD3A => array(0x637, 0x645), 0xFD3B => array(0x638, 0x645),
2611
-                    0xFD3C => array(0x627, 0x64B), 0xFD3D => array(0x627, 0x64B), 0xFD50 => array(0x62A, 0x62C, 0x645),
2612
-                    0xFD51 => array(0x62A, 0x62D, 0x62C), 0xFD52 => array(0x62A, 0x62D, 0x62C), 0xFD53 => array(0x62A, 0x62D, 0x645),
2613
-                    0xFD54 => array(0x62A, 0x62E, 0x645), 0xFD55 => array(0x62A, 0x645, 0x62C), 0xFD56 => array(0x62A, 0x645, 0x62D),
2614
-                    0xFD57 => array(0x62A, 0x645, 0x62E), 0xFD58 => array(0x62C, 0x645, 0x62D), 0xFD59 => array(0x62C, 0x645, 0x62D),
2615
-                    0xFD5A => array(0x62D, 0x645, 0x64A), 0xFD5B => array(0x62D, 0x645, 0x649), 0xFD5C => array(0x633, 0x62D, 0x62C),
2616
-                    0xFD5D => array(0x633, 0x62C, 0x62D), 0xFD5E => array(0x633, 0x62C, 0x649), 0xFD5F => array(0x633, 0x645, 0x62D),
2617
-                    0xFD60 => array(0x633, 0x645, 0x62D), 0xFD61 => array(0x633, 0x645, 0x62C), 0xFD62 => array(0x633, 0x645, 0x645),
2618
-                    0xFD63 => array(0x633, 0x645, 0x645), 0xFD64 => array(0x635, 0x62D, 0x62D), 0xFD65 => array(0x635, 0x62D, 0x62D),
2619
-                    0xFD66 => array(0x635, 0x645, 0x645), 0xFD67 => array(0x634, 0x62D, 0x645), 0xFD68 => array(0x634, 0x62D, 0x645),
2620
-                    0xFD69 => array(0x634, 0x62C, 0x64A), 0xFD6A => array(0x634, 0x645, 0x62E), 0xFD6B => array(0x634, 0x645, 0x62E),
2621
-                    0xFD6C => array(0x634, 0x645, 0x645), 0xFD6D => array(0x634, 0x645, 0x645), 0xFD6E => array(0x636, 0x62D, 0x649),
2622
-                    0xFD6F => array(0x636, 0x62E, 0x645), 0xFD70 => array(0x636, 0x62E, 0x645), 0xFD71 => array(0x637, 0x645, 0x62D),
2623
-                    0xFD72 => array(0x637, 0x645, 0x62D), 0xFD73 => array(0x637, 0x645, 0x645), 0xFD74 => array(0x637, 0x645, 0x64A),
2624
-                    0xFD75 => array(0x639, 0x62C, 0x645), 0xFD76 => array(0x639, 0x645, 0x645), 0xFD77 => array(0x639, 0x645, 0x645),
2625
-                    0xFD78 => array(0x639, 0x645, 0x649), 0xFD79 => array(0x63A, 0x645, 0x645), 0xFD7A => array(0x63A, 0x645, 0x64A),
2626
-                    0xFD7B => array(0x63A, 0x645, 0x649), 0xFD7C => array(0x641, 0x62E, 0x645), 0xFD7D => array(0x641, 0x62E, 0x645),
2627
-                    0xFD7E => array(0x642, 0x645, 0x62D), 0xFD7F => array(0x642, 0x645, 0x645), 0xFD80 => array(0x644, 0x62D, 0x645),
2628
-                    0xFD81 => array(0x644, 0x62D, 0x64A), 0xFD82 => array(0x644, 0x62D, 0x649), 0xFD83 => array(0x644, 0x62C, 0x62C),
2629
-                    0xFD84 => array(0x644, 0x62C, 0x62C), 0xFD85 => array(0x644, 0x62E, 0x645), 0xFD86 => array(0x644, 0x62E, 0x645),
2630
-                    0xFD87 => array(0x644, 0x645, 0x62D), 0xFD88 => array(0x644, 0x645, 0x62D), 0xFD89 => array(0x645, 0x62D, 0x62C),
2631
-                    0xFD8A => array(0x645, 0x62D, 0x645), 0xFD8B => array(0x645, 0x62D, 0x64A), 0xFD8C => array(0x645, 0x62C, 0x62D),
2632
-                    0xFD8D => array(0x645, 0x62C, 0x645), 0xFD8E => array(0x645, 0x62E, 0x62C), 0xFD8F => array(0x645, 0x62E, 0x645),
2633
-                    0xFD92 => array(0x645, 0x62C, 0x62E), 0xFD93 => array(0x647, 0x645, 0x62C), 0xFD94 => array(0x647, 0x645, 0x645),
2634
-                    0xFD95 => array(0x646, 0x62D, 0x645), 0xFD96 => array(0x646, 0x62D, 0x649), 0xFD97 => array(0x646, 0x62C, 0x645),
2635
-                    0xFD98 => array(0x646, 0x62C, 0x645), 0xFD99 => array(0x646, 0x62C, 0x649), 0xFD9A => array(0x646, 0x645, 0x64A),
2636
-                    0xFD9B => array(0x646, 0x645, 0x649), 0xFD9C => array(0x64A, 0x645, 0x645), 0xFD9D => array(0x64A, 0x645, 0x645),
2637
-                    0xFD9E => array(0x628, 0x62E, 0x64A), 0xFD9F => array(0x62A, 0x62C, 0x64A), 0xFDA0 => array(0x62A, 0x62C, 0x649),
2638
-                    0xFDA1 => array(0x62A, 0x62E, 0x64A), 0xFDA2 => array(0x62A, 0x62E, 0x649), 0xFDA3 => array(0x62A, 0x645, 0x64A),
2639
-                    0xFDA4 => array(0x62A, 0x645, 0x649), 0xFDA5 => array(0x62C, 0x645, 0x64A), 0xFDA6 => array(0x62C, 0x62D, 0x649),
2640
-                    0xFDA7 => array(0x62C, 0x645, 0x649), 0xFDA8 => array(0x633, 0x62E, 0x649), 0xFDA9 => array(0x635, 0x62D, 0x64A),
2641
-                    0xFDAA => array(0x634, 0x62D, 0x64A), 0xFDAB => array(0x636, 0x62D, 0x64A), 0xFDAC => array(0x644, 0x62C, 0x64A),
2642
-                    0xFDAD => array(0x644, 0x645, 0x64A), 0xFDAE => array(0x64A, 0x62D, 0x64A), 0xFDAF => array(0x64A, 0x62C, 0x64A),
2643
-                    0xFDB0 => array(0x64A, 0x645, 0x64A), 0xFDB1 => array(0x645, 0x645, 0x64A), 0xFDB2 => array(0x642, 0x645, 0x64A),
2644
-                    0xFDB3 => array(0x646, 0x62D, 0x64A), 0xFDB4 => array(0x642, 0x645, 0x62D), 0xFDB5 => array(0x644, 0x62D, 0x645),
2645
-                    0xFDB6 => array(0x639, 0x645, 0x64A), 0xFDB7 => array(0x643, 0x645, 0x64A), 0xFDB8 => array(0x646, 0x62C, 0x62D),
2646
-                    0xFDB9 => array(0x645, 0x62E, 0x64A), 0xFDBA => array(0x644, 0x62C, 0x645), 0xFDBB => array(0x643, 0x645, 0x645),
2647
-                    0xFDBC => array(0x644, 0x62C, 0x645), 0xFDBD => array(0x646, 0x62C, 0x62D), 0xFDBE => array(0x62C, 0x62D, 0x64A),
2648
-                    0xFDBF => array(0x62D, 0x62C, 0x64A), 0xFDC0 => array(0x645, 0x62C, 0x64A), 0xFDC1 => array(0x641, 0x645, 0x64A),
2649
-                    0xFDC2 => array(0x628, 0x62D, 0x64A), 0xFDC3 => array(0x643, 0x645, 0x645), 0xFDC4 => array(0x639, 0x62C, 0x645),
2650
-                    0xFDC5 => array(0x635, 0x645, 0x645), 0xFDC6 => array(0x633, 0x62E, 0x64A), 0xFDC7 => array(0x646, 0x62C, 0x64A),
2651
-                    0xFDF0 => array(0x635, 0x644, 0x6D2), 0xFDF1 => array(0x642, 0x644, 0x6D2), 0xFDF2 => array(0x627, 0x644, 0x644, 0x647),
2652
-                    0xFDF3 => array(0x627, 0x643, 0x628, 0x631), 0xFDF4 => array(0x645, 0x62D, 0x645, 0x62F), 0xFDF5 => array(0x635, 0x644, 0x639, 0x645),
2653
-                    0xFDF6 => array(0x631, 0x633, 0x648, 0x644), 0xFDF7 => array(0x639, 0x644, 0x64A, 0x647), 0xFDF8 => array(0x648, 0x633, 0x644, 0x645),
2654
-                    0xFDF9 => array(0x635, 0x644, 0x649), 0xFDFC => array(0x631, 0x6CC, 0x627, 0x644), 0xFE11 => array(0x3001),
2655
-                    0xFE17 => array(0x3016), 0xFE18 => array(0x3017), 0xFE31 => array(0x2014),
2656
-                    0xFE32 => array(0x2013), 0xFE39 => array(0x3014), 0xFE3A => array(0x3015),
2657
-                    0xFE3B => array(0x3010), 0xFE3C => array(0x3011), 0xFE3D => array(0x300A),
2658
-                    0xFE3E => array(0x300B), 0xFE3F => array(0x3008), 0xFE40 => array(0x3009),
2659
-                    0xFE41 => array(0x300C), 0xFE42 => array(0x300D), 0xFE43 => array(0x300E),
2660
-                    0xFE44 => array(0x300F), 0xFE51 => array(0x3001), 0xFE58 => array(0x2014),
2661
-                    0xFE5D => array(0x3014), 0xFE5E => array(0x3015), 0xFE63 => array(0x2D),
2662
-                    0xFE71 => array(0x640, 0x64B), 0xFE77 => array(0x640, 0x64E), 0xFE79 => array(0x640, 0x64F),
2663
-                    0xFE7B => array(0x640, 0x650), 0xFE7D => array(0x640, 0x651), 0xFE7F => array(0x640, 0x652),
2664
-                    0xFE80 => array(0x621), 0xFE81 => array(0x622), 0xFE82 => array(0x622),
2665
-                    0xFE83 => array(0x623), 0xFE84 => array(0x623), 0xFE85 => array(0x624),
2666
-                    0xFE86 => array(0x624), 0xFE87 => array(0x625), 0xFE88 => array(0x625),
2667
-                    0xFE89 => array(0x626), 0xFE8A => array(0x626), 0xFE8B => array(0x626),
2668
-                    0xFE8C => array(0x626), 0xFE8D => array(0x627), 0xFE8E => array(0x627),
2669
-                    0xFE8F => array(0x628), 0xFE90 => array(0x628), 0xFE91 => array(0x628),
2670
-                    0xFE92 => array(0x628), 0xFE93 => array(0x629), 0xFE94 => array(0x629),
2671
-                    0xFE95 => array(0x62A), 0xFE96 => array(0x62A), 0xFE97 => array(0x62A),
2672
-                    0xFE98 => array(0x62A), 0xFE99 => array(0x62B), 0xFE9A => array(0x62B),
2673
-                    0xFE9B => array(0x62B), 0xFE9C => array(0x62B), 0xFE9D => array(0x62C),
2674
-                    0xFE9E => array(0x62C), 0xFE9F => array(0x62C), 0xFEA0 => array(0x62C),
2675
-                    0xFEA1 => array(0x62D), 0xFEA2 => array(0x62D), 0xFEA3 => array(0x62D),
2676
-                    0xFEA4 => array(0x62D), 0xFEA5 => array(0x62E), 0xFEA6 => array(0x62E),
2677
-                    0xFEA7 => array(0x62E), 0xFEA8 => array(0x62E), 0xFEA9 => array(0x62F),
2678
-                    0xFEAA => array(0x62F), 0xFEAB => array(0x630), 0xFEAC => array(0x630),
2679
-                    0xFEAD => array(0x631), 0xFEAE => array(0x631), 0xFEAF => array(0x632),
2680
-                    0xFEB0 => array(0x632), 0xFEB1 => array(0x633), 0xFEB2 => array(0x633),
2681
-                    0xFEB3 => array(0x633), 0xFEB4 => array(0x633), 0xFEB5 => array(0x634),
2682
-                    0xFEB6 => array(0x634), 0xFEB7 => array(0x634), 0xFEB8 => array(0x634),
2683
-                    0xFEB9 => array(0x635), 0xFEBA => array(0x635), 0xFEBB => array(0x635),
2684
-                    0xFEBC => array(0x635), 0xFEBD => array(0x636), 0xFEBE => array(0x636),
2685
-                    0xFEBF => array(0x636), 0xFEC0 => array(0x636), 0xFEC1 => array(0x637),
2686
-                    0xFEC2 => array(0x637), 0xFEC3 => array(0x637), 0xFEC4 => array(0x637),
2687
-                    0xFEC5 => array(0x638), 0xFEC6 => array(0x638), 0xFEC7 => array(0x638),
2688
-                    0xFEC8 => array(0x638), 0xFEC9 => array(0x639), 0xFECA => array(0x639),
2689
-                    0xFECB => array(0x639), 0xFECC => array(0x639), 0xFECD => array(0x63A),
2690
-                    0xFECE => array(0x63A), 0xFECF => array(0x63A), 0xFED0 => array(0x63A),
2691
-                    0xFED1 => array(0x641), 0xFED2 => array(0x641), 0xFED3 => array(0x641),
2692
-                    0xFED4 => array(0x641), 0xFED5 => array(0x642), 0xFED6 => array(0x642),
2693
-                    0xFED7 => array(0x642), 0xFED8 => array(0x642), 0xFED9 => array(0x643),
2694
-                    0xFEDA => array(0x643), 0xFEDB => array(0x643), 0xFEDC => array(0x643),
2695
-                    0xFEDD => array(0x644), 0xFEDE => array(0x644), 0xFEDF => array(0x644),
2696
-                    0xFEE0 => array(0x644), 0xFEE1 => array(0x645), 0xFEE2 => array(0x645),
2697
-                    0xFEE3 => array(0x645), 0xFEE4 => array(0x645), 0xFEE5 => array(0x646),
2698
-                    0xFEE6 => array(0x646), 0xFEE7 => array(0x646), 0xFEE8 => array(0x646),
2699
-                    0xFEE9 => array(0x647), 0xFEEA => array(0x647), 0xFEEB => array(0x647),
2700
-                    0xFEEC => array(0x647), 0xFEED => array(0x648), 0xFEEE => array(0x648),
2701
-                    0xFEEF => array(0x649), 0xFEF0 => array(0x649), 0xFEF1 => array(0x64A),
2702
-                    0xFEF2 => array(0x64A), 0xFEF3 => array(0x64A), 0xFEF4 => array(0x64A),
2703
-                    0xFEF5 => array(0x644, 0x622), 0xFEF6 => array(0x644, 0x622), 0xFEF7 => array(0x644, 0x623),
2704
-                    0xFEF8 => array(0x644, 0x623), 0xFEF9 => array(0x644, 0x625), 0xFEFA => array(0x644, 0x625),
2705
-                    0xFEFB => array(0x644, 0x627), 0xFEFC => array(0x644, 0x627), 0xFF0D => array(0x2D),
2706
-                    0xFF0E => array(0x2E), 0xFF10 => array(0x30), 0xFF11 => array(0x31),
2707
-                    0xFF12 => array(0x32), 0xFF13 => array(0x33), 0xFF14 => array(0x34),
2708
-                    0xFF15 => array(0x35), 0xFF16 => array(0x36), 0xFF17 => array(0x37),
2709
-                    0xFF18 => array(0x38), 0xFF19 => array(0x39), 0xFF21 => array(0x61),
2710
-                    0xFF22 => array(0x62), 0xFF23 => array(0x63), 0xFF24 => array(0x64),
2711
-                    0xFF25 => array(0x65), 0xFF26 => array(0x66), 0xFF27 => array(0x67),
2712
-                    0xFF28 => array(0x68), 0xFF29 => array(0x69), 0xFF2A => array(0x6A),
2713
-                    0xFF2B => array(0x6B), 0xFF2C => array(0x6C), 0xFF2D => array(0x6D),
2714
-                    0xFF2E => array(0x6E), 0xFF2F => array(0x6F), 0xFF30 => array(0x70),
2715
-                    0xFF31 => array(0x71), 0xFF32 => array(0x72), 0xFF33 => array(0x73),
2716
-                    0xFF34 => array(0x74), 0xFF35 => array(0x75), 0xFF36 => array(0x76),
2717
-                    0xFF37 => array(0x77), 0xFF38 => array(0x78), 0xFF39 => array(0x79),
2718
-                    0xFF3A => array(0x7A), 0xFF41 => array(0x61), 0xFF42 => array(0x62),
2719
-                    0xFF43 => array(0x63), 0xFF44 => array(0x64), 0xFF45 => array(0x65),
2720
-                    0xFF46 => array(0x66), 0xFF47 => array(0x67), 0xFF48 => array(0x68),
2721
-                    0xFF49 => array(0x69), 0xFF4A => array(0x6A), 0xFF4B => array(0x6B),
2722
-                    0xFF4C => array(0x6C), 0xFF4D => array(0x6D), 0xFF4E => array(0x6E),
2723
-                    0xFF4F => array(0x6F), 0xFF50 => array(0x70), 0xFF51 => array(0x71),
2724
-                    0xFF52 => array(0x72), 0xFF53 => array(0x73), 0xFF54 => array(0x74),
2725
-                    0xFF55 => array(0x75), 0xFF56 => array(0x76), 0xFF57 => array(0x77),
2726
-                    0xFF58 => array(0x78), 0xFF59 => array(0x79), 0xFF5A => array(0x7A),
2727
-                    0xFF5F => array(0x2985), 0xFF60 => array(0x2986), 0xFF61 => array(0x2E),
2728
-                    0xFF62 => array(0x300C), 0xFF63 => array(0x300D), 0xFF64 => array(0x3001),
2729
-                    0xFF65 => array(0x30FB), 0xFF66 => array(0x30F2), 0xFF67 => array(0x30A1),
2730
-                    0xFF68 => array(0x30A3), 0xFF69 => array(0x30A5), 0xFF6A => array(0x30A7),
2731
-                    0xFF6B => array(0x30A9), 0xFF6C => array(0x30E3), 0xFF6D => array(0x30E5),
2732
-                    0xFF6E => array(0x30E7), 0xFF6F => array(0x30C3), 0xFF70 => array(0x30FC),
2733
-                    0xFF71 => array(0x30A2), 0xFF72 => array(0x30A4), 0xFF73 => array(0x30A6),
2734
-                    0xFF74 => array(0x30A8), 0xFF75 => array(0x30AA), 0xFF76 => array(0x30AB),
2735
-                    0xFF77 => array(0x30AD), 0xFF78 => array(0x30AF), 0xFF79 => array(0x30B1),
2736
-                    0xFF7A => array(0x30B3), 0xFF7B => array(0x30B5), 0xFF7C => array(0x30B7),
2737
-                    0xFF7D => array(0x30B9), 0xFF7E => array(0x30BB), 0xFF7F => array(0x30BD),
2738
-                    0xFF80 => array(0x30BF), 0xFF81 => array(0x30C1), 0xFF82 => array(0x30C4),
2739
-                    0xFF83 => array(0x30C6), 0xFF84 => array(0x30C8), 0xFF85 => array(0x30CA),
2740
-                    0xFF86 => array(0x30CB), 0xFF87 => array(0x30CC), 0xFF88 => array(0x30CD),
2741
-                    0xFF89 => array(0x30CE), 0xFF8A => array(0x30CF), 0xFF8B => array(0x30D2),
2742
-                    0xFF8C => array(0x30D5), 0xFF8D => array(0x30D8), 0xFF8E => array(0x30DB),
2743
-                    0xFF8F => array(0x30DE), 0xFF90 => array(0x30DF), 0xFF91 => array(0x30E0),
2744
-                    0xFF92 => array(0x30E1), 0xFF93 => array(0x30E2), 0xFF94 => array(0x30E4),
2745
-                    0xFF95 => array(0x30E6), 0xFF96 => array(0x30E8), 0xFF97 => array(0x30E9),
2746
-                    0xFF98 => array(0x30EA), 0xFF99 => array(0x30EB), 0xFF9A => array(0x30EC),
2747
-                    0xFF9B => array(0x30ED), 0xFF9C => array(0x30EF), 0xFF9D => array(0x30F3),
2748
-                    0xFF9E => array(0x3099), 0xFF9F => array(0x309A), 0xFFA1 => array(0x1100),
2749
-                    0xFFA2 => array(0x1101), 0xFFA3 => array(0x11AA), 0xFFA4 => array(0x1102),
2750
-                    0xFFA5 => array(0x11AC), 0xFFA6 => array(0x11AD), 0xFFA7 => array(0x1103),
2751
-                    0xFFA8 => array(0x1104), 0xFFA9 => array(0x1105), 0xFFAA => array(0x11B0),
2752
-                    0xFFAB => array(0x11B1), 0xFFAC => array(0x11B2), 0xFFAD => array(0x11B3),
2753
-                    0xFFAE => array(0x11B4), 0xFFAF => array(0x11B5), 0xFFB0 => array(0x111A),
2754
-                    0xFFB1 => array(0x1106), 0xFFB2 => array(0x1107), 0xFFB3 => array(0x1108),
2755
-                    0xFFB4 => array(0x1121), 0xFFB5 => array(0x1109), 0xFFB6 => array(0x110A),
2756
-                    0xFFB7 => array(0x110B), 0xFFB8 => array(0x110C), 0xFFB9 => array(0x110D),
2757
-                    0xFFBA => array(0x110E), 0xFFBB => array(0x110F), 0xFFBC => array(0x1110),
2758
-                    0xFFBD => array(0x1111), 0xFFBE => array(0x1112), 0xFFC2 => array(0x1161),
2759
-                    0xFFC3 => array(0x1162), 0xFFC4 => array(0x1163), 0xFFC5 => array(0x1164),
2760
-                    0xFFC6 => array(0x1165), 0xFFC7 => array(0x1166), 0xFFCA => array(0x1167),
2761
-                    0xFFCB => array(0x1168), 0xFFCC => array(0x1169), 0xFFCD => array(0x116A),
2762
-                    0xFFCE => array(0x116B), 0xFFCF => array(0x116C), 0xFFD2 => array(0x116D),
2763
-                    0xFFD3 => array(0x116E), 0xFFD4 => array(0x116F), 0xFFD5 => array(0x1170),
2764
-                    0xFFD6 => array(0x1171), 0xFFD7 => array(0x1172), 0xFFDA => array(0x1173),
2765
-                    0xFFDB => array(0x1174), 0xFFDC => array(0x1175), 0xFFE0 => array(0xA2),
2766
-                    0xFFE1 => array(0xA3), 0xFFE2 => array(0xAC), 0xFFE4 => array(0xA6),
2767
-                    0xFFE5 => array(0xA5), 0xFFE6 => array(0x20A9), 0xFFE8 => array(0x2502),
2768
-                    0xFFE9 => array(0x2190), 0xFFEA => array(0x2191), 0xFFEB => array(0x2192),
2769
-                    0xFFEC => array(0x2193), 0xFFED => array(0x25A0), 0xFFEE => array(0x25CB),
2770
-                    0x10400 => array(0x10428), 0x10401 => array(0x10429), 0x10402 => array(0x1042A),
2771
-                    0x10403 => array(0x1042B), 0x10404 => array(0x1042C), 0x10405 => array(0x1042D),
2772
-                    0x10406 => array(0x1042E), 0x10407 => array(0x1042F), 0x10408 => array(0x10430),
2773
-                    0x10409 => array(0x10431), 0x1040A => array(0x10432), 0x1040B => array(0x10433),
2774
-                    0x1040C => array(0x10434), 0x1040D => array(0x10435), 0x1040E => array(0x10436),
2775
-                    0x1040F => array(0x10437), 0x10410 => array(0x10438), 0x10411 => array(0x10439),
2776
-                    0x10412 => array(0x1043A), 0x10413 => array(0x1043B), 0x10414 => array(0x1043C),
2777
-                    0x10415 => array(0x1043D), 0x10416 => array(0x1043E), 0x10417 => array(0x1043F),
2778
-                    0x10418 => array(0x10440), 0x10419 => array(0x10441), 0x1041A => array(0x10442),
2779
-                    0x1041B => array(0x10443), 0x1041C => array(0x10444), 0x1041D => array(0x10445),
2780
-                    0x1041E => array(0x10446), 0x1041F => array(0x10447), 0x10420 => array(0x10448),
2781
-                    0x10421 => array(0x10449), 0x10422 => array(0x1044A), 0x10423 => array(0x1044B),
2782
-                    0x10424 => array(0x1044C), 0x10425 => array(0x1044D), 0x10426 => array(0x1044E),
2783
-                    0x10427 => array(0x1044F), 0x118A0 => array(0x118C0), 0x118A1 => array(0x118C1),
2784
-                    0x118A2 => array(0x118C2), 0x118A3 => array(0x118C3), 0x118A4 => array(0x118C4),
2785
-                    0x118A5 => array(0x118C5), 0x118A6 => array(0x118C6), 0x118A7 => array(0x118C7),
2786
-                    0x118A8 => array(0x118C8), 0x118A9 => array(0x118C9), 0x118AA => array(0x118CA),
2787
-                    0x118AB => array(0x118CB), 0x118AC => array(0x118CC), 0x118AD => array(0x118CD),
2788
-                    0x118AE => array(0x118CE), 0x118AF => array(0x118CF), 0x118B0 => array(0x118D0),
2789
-                    0x118B1 => array(0x118D1), 0x118B2 => array(0x118D2), 0x118B3 => array(0x118D3),
2790
-                    0x118B4 => array(0x118D4), 0x118B5 => array(0x118D5), 0x118B6 => array(0x118D6),
2791
-                    0x118B7 => array(0x118D7), 0x118B8 => array(0x118D8), 0x118B9 => array(0x118D9),
2792
-                    0x118BA => array(0x118DA), 0x118BB => array(0x118DB), 0x118BC => array(0x118DC),
2793
-                    0x118BD => array(0x118DD), 0x118BE => array(0x118DE), 0x118BF => array(0x118DF),
2794
-                    0x1D15E => array(0x1D157, 0x1D165), 0x1D15F => array(0x1D158, 0x1D165), 0x1D160 => array(0x1D158, 0x1D165, 0x1D16E),
2795
-                    0x1D161 => array(0x1D158, 0x1D165, 0x1D16F), 0x1D162 => array(0x1D158, 0x1D165, 0x1D170), 0x1D163 => array(0x1D158, 0x1D165, 0x1D171),
2796
-                    0x1D164 => array(0x1D158, 0x1D165, 0x1D172), 0x1D1BB => array(0x1D1B9, 0x1D165), 0x1D1BC => array(0x1D1BA, 0x1D165),
2797
-                    0x1D1BD => array(0x1D1B9, 0x1D165, 0x1D16E), 0x1D1BE => array(0x1D1BA, 0x1D165, 0x1D16E), 0x1D1BF => array(0x1D1B9, 0x1D165, 0x1D16F),
2798
-                    0x1D1C0 => array(0x1D1BA, 0x1D165, 0x1D16F), 0x1D400 => array(0x61), 0x1D401 => array(0x62),
2799
-                    0x1D402 => array(0x63), 0x1D403 => array(0x64), 0x1D404 => array(0x65),
2800
-                    0x1D405 => array(0x66), 0x1D406 => array(0x67), 0x1D407 => array(0x68),
2801
-                    0x1D408 => array(0x69), 0x1D409 => array(0x6A), 0x1D40A => array(0x6B),
2802
-                    0x1D40B => array(0x6C), 0x1D40C => array(0x6D), 0x1D40D => array(0x6E),
2803
-                    0x1D40E => array(0x6F), 0x1D40F => array(0x70), 0x1D410 => array(0x71),
2804
-                    0x1D411 => array(0x72), 0x1D412 => array(0x73), 0x1D413 => array(0x74),
2805
-                    0x1D414 => array(0x75), 0x1D415 => array(0x76), 0x1D416 => array(0x77),
2806
-                    0x1D417 => array(0x78), 0x1D418 => array(0x79), 0x1D419 => array(0x7A),
2807
-                    0x1D41A => array(0x61), 0x1D41B => array(0x62), 0x1D41C => array(0x63),
2808
-                    0x1D41D => array(0x64), 0x1D41E => array(0x65), 0x1D41F => array(0x66),
2809
-                    0x1D420 => array(0x67), 0x1D421 => array(0x68), 0x1D422 => array(0x69),
2810
-                    0x1D423 => array(0x6A), 0x1D424 => array(0x6B), 0x1D425 => array(0x6C),
2811
-                    0x1D426 => array(0x6D), 0x1D427 => array(0x6E), 0x1D428 => array(0x6F),
2812
-                    0x1D429 => array(0x70), 0x1D42A => array(0x71), 0x1D42B => array(0x72),
2813
-                    0x1D42C => array(0x73), 0x1D42D => array(0x74), 0x1D42E => array(0x75),
2814
-                    0x1D42F => array(0x76), 0x1D430 => array(0x77), 0x1D431 => array(0x78),
2815
-                    0x1D432 => array(0x79), 0x1D433 => array(0x7A), 0x1D434 => array(0x61),
2816
-                    0x1D435 => array(0x62), 0x1D436 => array(0x63), 0x1D437 => array(0x64),
2817
-                    0x1D438 => array(0x65), 0x1D439 => array(0x66), 0x1D43A => array(0x67),
2818
-                    0x1D43B => array(0x68), 0x1D43C => array(0x69), 0x1D43D => array(0x6A),
2819
-                    0x1D43E => array(0x6B), 0x1D43F => array(0x6C), 0x1D440 => array(0x6D),
2820
-                    0x1D441 => array(0x6E), 0x1D442 => array(0x6F), 0x1D443 => array(0x70),
2821
-                    0x1D444 => array(0x71), 0x1D445 => array(0x72), 0x1D446 => array(0x73),
2822
-                    0x1D447 => array(0x74), 0x1D448 => array(0x75), 0x1D449 => array(0x76),
2823
-                    0x1D44A => array(0x77), 0x1D44B => array(0x78), 0x1D44C => array(0x79),
2824
-                    0x1D44D => array(0x7A), 0x1D44E => array(0x61), 0x1D44F => array(0x62),
2825
-                    0x1D450 => array(0x63), 0x1D451 => array(0x64), 0x1D452 => array(0x65),
2826
-                    0x1D453 => array(0x66), 0x1D454 => array(0x67), 0x1D456 => array(0x69),
2827
-                    0x1D457 => array(0x6A), 0x1D458 => array(0x6B), 0x1D459 => array(0x6C),
2828
-                    0x1D45A => array(0x6D), 0x1D45B => array(0x6E), 0x1D45C => array(0x6F),
2829
-                    0x1D45D => array(0x70), 0x1D45E => array(0x71), 0x1D45F => array(0x72),
2830
-                    0x1D460 => array(0x73), 0x1D461 => array(0x74), 0x1D462 => array(0x75),
2831
-                    0x1D463 => array(0x76), 0x1D464 => array(0x77), 0x1D465 => array(0x78),
2832
-                    0x1D466 => array(0x79), 0x1D467 => array(0x7A), 0x1D468 => array(0x61),
2833
-                    0x1D469 => array(0x62), 0x1D46A => array(0x63), 0x1D46B => array(0x64),
2834
-                    0x1D46C => array(0x65), 0x1D46D => array(0x66), 0x1D46E => array(0x67),
2835
-                    0x1D46F => array(0x68), 0x1D470 => array(0x69), 0x1D471 => array(0x6A),
2836
-                    0x1D472 => array(0x6B), 0x1D473 => array(0x6C), 0x1D474 => array(0x6D),
2837
-                    0x1D475 => array(0x6E), 0x1D476 => array(0x6F), 0x1D477 => array(0x70),
2838
-                    0x1D478 => array(0x71), 0x1D479 => array(0x72), 0x1D47A => array(0x73),
2839
-                    0x1D47B => array(0x74), 0x1D47C => array(0x75), 0x1D47D => array(0x76),
2840
-                    0x1D47E => array(0x77), 0x1D47F => array(0x78), 0x1D480 => array(0x79),
2841
-                    0x1D481 => array(0x7A), 0x1D482 => array(0x61), 0x1D483 => array(0x62),
2842
-                    0x1D484 => array(0x63), 0x1D485 => array(0x64), 0x1D486 => array(0x65),
2843
-                    0x1D487 => array(0x66), 0x1D488 => array(0x67), 0x1D489 => array(0x68),
2844
-                    0x1D48A => array(0x69), 0x1D48B => array(0x6A), 0x1D48C => array(0x6B),
2845
-                    0x1D48D => array(0x6C), 0x1D48E => array(0x6D), 0x1D48F => array(0x6E),
2846
-                    0x1D490 => array(0x6F), 0x1D491 => array(0x70), 0x1D492 => array(0x71),
2847
-                    0x1D493 => array(0x72), 0x1D494 => array(0x73), 0x1D495 => array(0x74),
2848
-                    0x1D496 => array(0x75), 0x1D497 => array(0x76), 0x1D498 => array(0x77),
2849
-                    0x1D499 => array(0x78), 0x1D49A => array(0x79), 0x1D49B => array(0x7A),
2850
-                    0x1D49C => array(0x61), 0x1D49E => array(0x63), 0x1D49F => array(0x64),
2851
-                    0x1D4A2 => array(0x67), 0x1D4A5 => array(0x6A), 0x1D4A6 => array(0x6B),
2852
-                    0x1D4A9 => array(0x6E), 0x1D4AA => array(0x6F), 0x1D4AB => array(0x70),
2853
-                    0x1D4AC => array(0x71), 0x1D4AE => array(0x73), 0x1D4AF => array(0x74),
2854
-                    0x1D4B0 => array(0x75), 0x1D4B1 => array(0x76), 0x1D4B2 => array(0x77),
2855
-                    0x1D4B3 => array(0x78), 0x1D4B4 => array(0x79), 0x1D4B5 => array(0x7A),
2856
-                    0x1D4B6 => array(0x61), 0x1D4B7 => array(0x62), 0x1D4B8 => array(0x63),
2857
-                    0x1D4B9 => array(0x64), 0x1D4BB => array(0x66), 0x1D4BD => array(0x68),
2858
-                    0x1D4BE => array(0x69), 0x1D4BF => array(0x6A), 0x1D4C0 => array(0x6B),
2859
-                    0x1D4C1 => array(0x6C), 0x1D4C2 => array(0x6D), 0x1D4C3 => array(0x6E),
2860
-                    0x1D4C5 => array(0x70), 0x1D4C6 => array(0x71), 0x1D4C7 => array(0x72),
2861
-                    0x1D4C8 => array(0x73), 0x1D4C9 => array(0x74), 0x1D4CA => array(0x75),
2862
-                    0x1D4CB => array(0x76), 0x1D4CC => array(0x77), 0x1D4CD => array(0x78),
2863
-                    0x1D4CE => array(0x79), 0x1D4CF => array(0x7A), 0x1D4D0 => array(0x61),
2864
-                    0x1D4D1 => array(0x62), 0x1D4D2 => array(0x63), 0x1D4D3 => array(0x64),
2865
-                    0x1D4D4 => array(0x65), 0x1D4D5 => array(0x66), 0x1D4D6 => array(0x67),
2866
-                    0x1D4D7 => array(0x68), 0x1D4D8 => array(0x69), 0x1D4D9 => array(0x6A),
2867
-                    0x1D4DA => array(0x6B), 0x1D4DB => array(0x6C), 0x1D4DC => array(0x6D),
2868
-                    0x1D4DD => array(0x6E), 0x1D4DE => array(0x6F), 0x1D4DF => array(0x70),
2869
-                    0x1D4E0 => array(0x71), 0x1D4E1 => array(0x72), 0x1D4E2 => array(0x73),
2870
-                    0x1D4E3 => array(0x74), 0x1D4E4 => array(0x75), 0x1D4E5 => array(0x76),
2871
-                    0x1D4E6 => array(0x77), 0x1D4E7 => array(0x78), 0x1D4E8 => array(0x79),
2872
-                    0x1D4E9 => array(0x7A), 0x1D4EA => array(0x61), 0x1D4EB => array(0x62),
2873
-                    0x1D4EC => array(0x63), 0x1D4ED => array(0x64), 0x1D4EE => array(0x65),
2874
-                    0x1D4EF => array(0x66), 0x1D4F0 => array(0x67), 0x1D4F1 => array(0x68),
2875
-                    0x1D4F2 => array(0x69), 0x1D4F3 => array(0x6A), 0x1D4F4 => array(0x6B),
2876
-                    0x1D4F5 => array(0x6C), 0x1D4F6 => array(0x6D), 0x1D4F7 => array(0x6E),
2877
-                    0x1D4F8 => array(0x6F), 0x1D4F9 => array(0x70), 0x1D4FA => array(0x71),
2878
-                    0x1D4FB => array(0x72), 0x1D4FC => array(0x73), 0x1D4FD => array(0x74),
2879
-                    0x1D4FE => array(0x75), 0x1D4FF => array(0x76), 0x1D500 => array(0x77),
2880
-                    0x1D501 => array(0x78), 0x1D502 => array(0x79), 0x1D503 => array(0x7A),
2881
-                    0x1D504 => array(0x61), 0x1D505 => array(0x62), 0x1D507 => array(0x64),
2882
-                    0x1D508 => array(0x65), 0x1D509 => array(0x66), 0x1D50A => array(0x67),
2883
-                    0x1D50D => array(0x6A), 0x1D50E => array(0x6B), 0x1D50F => array(0x6C),
2884
-                    0x1D510 => array(0x6D), 0x1D511 => array(0x6E), 0x1D512 => array(0x6F),
2885
-                    0x1D513 => array(0x70), 0x1D514 => array(0x71), 0x1D516 => array(0x73),
2886
-                    0x1D517 => array(0x74), 0x1D518 => array(0x75), 0x1D519 => array(0x76),
2887
-                    0x1D51A => array(0x77), 0x1D51B => array(0x78), 0x1D51C => array(0x79),
2888
-                    0x1D51E => array(0x61), 0x1D51F => array(0x62), 0x1D520 => array(0x63),
2889
-                    0x1D521 => array(0x64), 0x1D522 => array(0x65), 0x1D523 => array(0x66),
2890
-                    0x1D524 => array(0x67), 0x1D525 => array(0x68), 0x1D526 => array(0x69),
2891
-                    0x1D527 => array(0x6A), 0x1D528 => array(0x6B), 0x1D529 => array(0x6C),
2892
-                    0x1D52A => array(0x6D), 0x1D52B => array(0x6E), 0x1D52C => array(0x6F),
2893
-                    0x1D52D => array(0x70), 0x1D52E => array(0x71), 0x1D52F => array(0x72),
2894
-                    0x1D530 => array(0x73), 0x1D531 => array(0x74), 0x1D532 => array(0x75),
2895
-                    0x1D533 => array(0x76), 0x1D534 => array(0x77), 0x1D535 => array(0x78),
2896
-                    0x1D536 => array(0x79), 0x1D537 => array(0x7A), 0x1D538 => array(0x61),
2897
-                    0x1D539 => array(0x62), 0x1D53B => array(0x64), 0x1D53C => array(0x65),
2898
-                    0x1D53D => array(0x66), 0x1D53E => array(0x67), 0x1D540 => array(0x69),
2899
-                    0x1D541 => array(0x6A), 0x1D542 => array(0x6B), 0x1D543 => array(0x6C),
2900
-                    0x1D544 => array(0x6D), 0x1D546 => array(0x6F), 0x1D54A => array(0x73),
2901
-                    0x1D54B => array(0x74), 0x1D54C => array(0x75), 0x1D54D => array(0x76),
2902
-                    0x1D54E => array(0x77), 0x1D54F => array(0x78), 0x1D550 => array(0x79),
2903
-                    0x1D552 => array(0x61), 0x1D553 => array(0x62), 0x1D554 => array(0x63),
2904
-                    0x1D555 => array(0x64), 0x1D556 => array(0x65), 0x1D557 => array(0x66),
2905
-                    0x1D558 => array(0x67), 0x1D559 => array(0x68), 0x1D55A => array(0x69),
2906
-                    0x1D55B => array(0x6A), 0x1D55C => array(0x6B), 0x1D55D => array(0x6C),
2907
-                    0x1D55E => array(0x6D), 0x1D55F => array(0x6E), 0x1D560 => array(0x6F),
2908
-                    0x1D561 => array(0x70), 0x1D562 => array(0x71), 0x1D563 => array(0x72),
2909
-                    0x1D564 => array(0x73), 0x1D565 => array(0x74), 0x1D566 => array(0x75),
2910
-                    0x1D567 => array(0x76), 0x1D568 => array(0x77), 0x1D569 => array(0x78),
2911
-                    0x1D56A => array(0x79), 0x1D56B => array(0x7A), 0x1D56C => array(0x61),
2912
-                    0x1D56D => array(0x62), 0x1D56E => array(0x63), 0x1D56F => array(0x64),
2913
-                    0x1D570 => array(0x65), 0x1D571 => array(0x66), 0x1D572 => array(0x67),
2914
-                    0x1D573 => array(0x68), 0x1D574 => array(0x69), 0x1D575 => array(0x6A),
2915
-                    0x1D576 => array(0x6B), 0x1D577 => array(0x6C), 0x1D578 => array(0x6D),
2916
-                    0x1D579 => array(0x6E), 0x1D57A => array(0x6F), 0x1D57B => array(0x70),
2917
-                    0x1D57C => array(0x71), 0x1D57D => array(0x72), 0x1D57E => array(0x73),
2918
-                    0x1D57F => array(0x74), 0x1D580 => array(0x75), 0x1D581 => array(0x76),
2919
-                    0x1D582 => array(0x77), 0x1D583 => array(0x78), 0x1D584 => array(0x79),
2920
-                    0x1D585 => array(0x7A), 0x1D586 => array(0x61), 0x1D587 => array(0x62),
2921
-                    0x1D588 => array(0x63), 0x1D589 => array(0x64), 0x1D58A => array(0x65),
2922
-                    0x1D58B => array(0x66), 0x1D58C => array(0x67), 0x1D58D => array(0x68),
2923
-                    0x1D58E => array(0x69), 0x1D58F => array(0x6A), 0x1D590 => array(0x6B),
2924
-                    0x1D591 => array(0x6C), 0x1D592 => array(0x6D), 0x1D593 => array(0x6E),
2925
-                    0x1D594 => array(0x6F), 0x1D595 => array(0x70), 0x1D596 => array(0x71),
2926
-                    0x1D597 => array(0x72), 0x1D598 => array(0x73), 0x1D599 => array(0x74),
2927
-                    0x1D59A => array(0x75), 0x1D59B => array(0x76), 0x1D59C => array(0x77),
2928
-                    0x1D59D => array(0x78), 0x1D59E => array(0x79), 0x1D59F => array(0x7A),
2929
-                    0x1D5A0 => array(0x61), 0x1D5A1 => array(0x62), 0x1D5A2 => array(0x63),
2930
-                    0x1D5A3 => array(0x64), 0x1D5A4 => array(0x65), 0x1D5A5 => array(0x66),
2931
-                    0x1D5A6 => array(0x67), 0x1D5A7 => array(0x68), 0x1D5A8 => array(0x69),
2932
-                    0x1D5A9 => array(0x6A), 0x1D5AA => array(0x6B), 0x1D5AB => array(0x6C),
2933
-                    0x1D5AC => array(0x6D), 0x1D5AD => array(0x6E), 0x1D5AE => array(0x6F),
2934
-                    0x1D5AF => array(0x70), 0x1D5B0 => array(0x71), 0x1D5B1 => array(0x72),
2935
-                    0x1D5B2 => array(0x73), 0x1D5B3 => array(0x74), 0x1D5B4 => array(0x75),
2936
-                    0x1D5B5 => array(0x76), 0x1D5B6 => array(0x77), 0x1D5B7 => array(0x78),
2937
-                    0x1D5B8 => array(0x79), 0x1D5B9 => array(0x7A), 0x1D5BA => array(0x61),
2938
-                    0x1D5BB => array(0x62), 0x1D5BC => array(0x63), 0x1D5BD => array(0x64),
2939
-                    0x1D5BE => array(0x65), 0x1D5BF => array(0x66), 0x1D5C0 => array(0x67),
2940
-                    0x1D5C1 => array(0x68), 0x1D5C2 => array(0x69), 0x1D5C3 => array(0x6A),
2941
-                    0x1D5C4 => array(0x6B), 0x1D5C5 => array(0x6C), 0x1D5C6 => array(0x6D),
2942
-                    0x1D5C7 => array(0x6E), 0x1D5C8 => array(0x6F), 0x1D5C9 => array(0x70),
2943
-                    0x1D5CA => array(0x71), 0x1D5CB => array(0x72), 0x1D5CC => array(0x73),
2944
-                    0x1D5CD => array(0x74), 0x1D5CE => array(0x75), 0x1D5CF => array(0x76),
2945
-                    0x1D5D0 => array(0x77), 0x1D5D1 => array(0x78), 0x1D5D2 => array(0x79),
2946
-                    0x1D5D3 => array(0x7A), 0x1D5D4 => array(0x61), 0x1D5D5 => array(0x62),
2947
-                    0x1D5D6 => array(0x63), 0x1D5D7 => array(0x64), 0x1D5D8 => array(0x65),
2948
-                    0x1D5D9 => array(0x66), 0x1D5DA => array(0x67), 0x1D5DB => array(0x68),
2949
-                    0x1D5DC => array(0x69), 0x1D5DD => array(0x6A), 0x1D5DE => array(0x6B),
2950
-                    0x1D5DF => array(0x6C), 0x1D5E0 => array(0x6D), 0x1D5E1 => array(0x6E),
2951
-                    0x1D5E2 => array(0x6F), 0x1D5E3 => array(0x70), 0x1D5E4 => array(0x71),
2952
-                    0x1D5E5 => array(0x72), 0x1D5E6 => array(0x73), 0x1D5E7 => array(0x74),
2953
-                    0x1D5E8 => array(0x75), 0x1D5E9 => array(0x76), 0x1D5EA => array(0x77),
2954
-                    0x1D5EB => array(0x78), 0x1D5EC => array(0x79), 0x1D5ED => array(0x7A),
2955
-                    0x1D5EE => array(0x61), 0x1D5EF => array(0x62), 0x1D5F0 => array(0x63),
2956
-                    0x1D5F1 => array(0x64), 0x1D5F2 => array(0x65), 0x1D5F3 => array(0x66),
2957
-                    0x1D5F4 => array(0x67), 0x1D5F5 => array(0x68), 0x1D5F6 => array(0x69),
2958
-                    0x1D5F7 => array(0x6A), 0x1D5F8 => array(0x6B), 0x1D5F9 => array(0x6C),
2959
-                    0x1D5FA => array(0x6D), 0x1D5FB => array(0x6E), 0x1D5FC => array(0x6F),
2960
-                    0x1D5FD => array(0x70), 0x1D5FE => array(0x71), 0x1D5FF => array(0x72),
2961
-                    0x1D600 => array(0x73), 0x1D601 => array(0x74), 0x1D602 => array(0x75),
2962
-                    0x1D603 => array(0x76), 0x1D604 => array(0x77), 0x1D605 => array(0x78),
2963
-                    0x1D606 => array(0x79), 0x1D607 => array(0x7A), 0x1D608 => array(0x61),
2964
-                    0x1D609 => array(0x62), 0x1D60A => array(0x63), 0x1D60B => array(0x64),
2965
-                    0x1D60C => array(0x65), 0x1D60D => array(0x66), 0x1D60E => array(0x67),
2966
-                    0x1D60F => array(0x68), 0x1D610 => array(0x69), 0x1D611 => array(0x6A),
2967
-                    0x1D612 => array(0x6B), 0x1D613 => array(0x6C), 0x1D614 => array(0x6D),
2968
-                    0x1D615 => array(0x6E), 0x1D616 => array(0x6F), 0x1D617 => array(0x70),
2969
-                    0x1D618 => array(0x71), 0x1D619 => array(0x72), 0x1D61A => array(0x73),
2970
-                    0x1D61B => array(0x74), 0x1D61C => array(0x75), 0x1D61D => array(0x76),
2971
-                    0x1D61E => array(0x77), 0x1D61F => array(0x78), 0x1D620 => array(0x79),
2972
-                    0x1D621 => array(0x7A), 0x1D622 => array(0x61), 0x1D623 => array(0x62),
2973
-                    0x1D624 => array(0x63), 0x1D625 => array(0x64), 0x1D626 => array(0x65),
2974
-                    0x1D627 => array(0x66), 0x1D628 => array(0x67), 0x1D629 => array(0x68),
2975
-                    0x1D62A => array(0x69), 0x1D62B => array(0x6A), 0x1D62C => array(0x6B),
2976
-                    0x1D62D => array(0x6C), 0x1D62E => array(0x6D), 0x1D62F => array(0x6E),
2977
-                    0x1D630 => array(0x6F), 0x1D631 => array(0x70), 0x1D632 => array(0x71),
2978
-                    0x1D633 => array(0x72), 0x1D634 => array(0x73), 0x1D635 => array(0x74),
2979
-                    0x1D636 => array(0x75), 0x1D637 => array(0x76), 0x1D638 => array(0x77),
2980
-                    0x1D639 => array(0x78), 0x1D63A => array(0x79), 0x1D63B => array(0x7A),
2981
-                    0x1D63C => array(0x61), 0x1D63D => array(0x62), 0x1D63E => array(0x63),
2982
-                    0x1D63F => array(0x64), 0x1D640 => array(0x65), 0x1D641 => array(0x66),
2983
-                    0x1D642 => array(0x67), 0x1D643 => array(0x68), 0x1D644 => array(0x69),
2984
-                    0x1D645 => array(0x6A), 0x1D646 => array(0x6B), 0x1D647 => array(0x6C),
2985
-                    0x1D648 => array(0x6D), 0x1D649 => array(0x6E), 0x1D64A => array(0x6F),
2986
-                    0x1D64B => array(0x70), 0x1D64C => array(0x71), 0x1D64D => array(0x72),
2987
-                    0x1D64E => array(0x73), 0x1D64F => array(0x74), 0x1D650 => array(0x75),
2988
-                    0x1D651 => array(0x76), 0x1D652 => array(0x77), 0x1D653 => array(0x78),
2989
-                    0x1D654 => array(0x79), 0x1D655 => array(0x7A), 0x1D656 => array(0x61),
2990
-                    0x1D657 => array(0x62), 0x1D658 => array(0x63), 0x1D659 => array(0x64),
2991
-                    0x1D65A => array(0x65), 0x1D65B => array(0x66), 0x1D65C => array(0x67),
2992
-                    0x1D65D => array(0x68), 0x1D65E => array(0x69), 0x1D65F => array(0x6A),
2993
-                    0x1D660 => array(0x6B), 0x1D661 => array(0x6C), 0x1D662 => array(0x6D),
2994
-                    0x1D663 => array(0x6E), 0x1D664 => array(0x6F), 0x1D665 => array(0x70),
2995
-                    0x1D666 => array(0x71), 0x1D667 => array(0x72), 0x1D668 => array(0x73),
2996
-                    0x1D669 => array(0x74), 0x1D66A => array(0x75), 0x1D66B => array(0x76),
2997
-                    0x1D66C => array(0x77), 0x1D66D => array(0x78), 0x1D66E => array(0x79),
2998
-                    0x1D66F => array(0x7A), 0x1D670 => array(0x61), 0x1D671 => array(0x62),
2999
-                    0x1D672 => array(0x63), 0x1D673 => array(0x64), 0x1D674 => array(0x65),
3000
-                    0x1D675 => array(0x66), 0x1D676 => array(0x67), 0x1D677 => array(0x68),
3001
-                    0x1D678 => array(0x69), 0x1D679 => array(0x6A), 0x1D67A => array(0x6B),
3002
-                    0x1D67B => array(0x6C), 0x1D67C => array(0x6D), 0x1D67D => array(0x6E),
3003
-                    0x1D67E => array(0x6F), 0x1D67F => array(0x70), 0x1D680 => array(0x71),
3004
-                    0x1D681 => array(0x72), 0x1D682 => array(0x73), 0x1D683 => array(0x74),
3005
-                    0x1D684 => array(0x75), 0x1D685 => array(0x76), 0x1D686 => array(0x77),
3006
-                    0x1D687 => array(0x78), 0x1D688 => array(0x79), 0x1D689 => array(0x7A),
3007
-                    0x1D68A => array(0x61), 0x1D68B => array(0x62), 0x1D68C => array(0x63),
3008
-                    0x1D68D => array(0x64), 0x1D68E => array(0x65), 0x1D68F => array(0x66),
3009
-                    0x1D690 => array(0x67), 0x1D691 => array(0x68), 0x1D692 => array(0x69),
3010
-                    0x1D693 => array(0x6A), 0x1D694 => array(0x6B), 0x1D695 => array(0x6C),
3011
-                    0x1D696 => array(0x6D), 0x1D697 => array(0x6E), 0x1D698 => array(0x6F),
3012
-                    0x1D699 => array(0x70), 0x1D69A => array(0x71), 0x1D69B => array(0x72),
3013
-                    0x1D69C => array(0x73), 0x1D69D => array(0x74), 0x1D69E => array(0x75),
3014
-                    0x1D69F => array(0x76), 0x1D6A0 => array(0x77), 0x1D6A1 => array(0x78),
3015
-                    0x1D6A2 => array(0x79), 0x1D6A3 => array(0x7A), 0x1D6A4 => array(0x131),
3016
-                    0x1D6A5 => array(0x237), 0x1D6A8 => array(0x3B1), 0x1D6A9 => array(0x3B2),
3017
-                    0x1D6AA => array(0x3B3), 0x1D6AB => array(0x3B4), 0x1D6AC => array(0x3B5),
3018
-                    0x1D6AD => array(0x3B6), 0x1D6AE => array(0x3B7), 0x1D6AF => array(0x3B8),
3019
-                    0x1D6B0 => array(0x3B9), 0x1D6B1 => array(0x3BA), 0x1D6B2 => array(0x3BB),
3020
-                    0x1D6B3 => array(0x3BC), 0x1D6B4 => array(0x3BD), 0x1D6B5 => array(0x3BE),
3021
-                    0x1D6B6 => array(0x3BF), 0x1D6B7 => array(0x3C0), 0x1D6B8 => array(0x3C1),
3022
-                    0x1D6B9 => array(0x3B8), 0x1D6BA => array(0x3C3), 0x1D6BB => array(0x3C4),
3023
-                    0x1D6BC => array(0x3C5), 0x1D6BD => array(0x3C6), 0x1D6BE => array(0x3C7),
3024
-                    0x1D6BF => array(0x3C8), 0x1D6C0 => array(0x3C9), 0x1D6C1 => array(0x2207),
3025
-                    0x1D6C2 => array(0x3B1), 0x1D6C3 => array(0x3B2), 0x1D6C4 => array(0x3B3),
3026
-                    0x1D6C5 => array(0x3B4), 0x1D6C6 => array(0x3B5), 0x1D6C7 => array(0x3B6),
3027
-                    0x1D6C8 => array(0x3B7), 0x1D6C9 => array(0x3B8), 0x1D6CA => array(0x3B9),
3028
-                    0x1D6CB => array(0x3BA), 0x1D6CC => array(0x3BB), 0x1D6CD => array(0x3BC),
3029
-                    0x1D6CE => array(0x3BD), 0x1D6CF => array(0x3BE), 0x1D6D0 => array(0x3BF),
3030
-                    0x1D6D1 => array(0x3C0), 0x1D6D2 => array(0x3C1), 0x1D6D3 => array(0x3C3),
3031
-                    0x1D6D4 => array(0x3C3), 0x1D6D5 => array(0x3C4), 0x1D6D6 => array(0x3C5),
3032
-                    0x1D6D7 => array(0x3C6), 0x1D6D8 => array(0x3C7), 0x1D6D9 => array(0x3C8),
3033
-                    0x1D6DA => array(0x3C9), 0x1D6DB => array(0x2202), 0x1D6DC => array(0x3B5),
3034
-                    0x1D6DD => array(0x3B8), 0x1D6DE => array(0x3BA), 0x1D6DF => array(0x3C6),
3035
-                    0x1D6E0 => array(0x3C1), 0x1D6E1 => array(0x3C0), 0x1D6E2 => array(0x3B1),
3036
-                    0x1D6E3 => array(0x3B2), 0x1D6E4 => array(0x3B3), 0x1D6E5 => array(0x3B4),
3037
-                    0x1D6E6 => array(0x3B5), 0x1D6E7 => array(0x3B6), 0x1D6E8 => array(0x3B7),
3038
-                    0x1D6E9 => array(0x3B8), 0x1D6EA => array(0x3B9), 0x1D6EB => array(0x3BA),
3039
-                    0x1D6EC => array(0x3BB), 0x1D6ED => array(0x3BC), 0x1D6EE => array(0x3BD),
3040
-                    0x1D6EF => array(0x3BE), 0x1D6F0 => array(0x3BF), 0x1D6F1 => array(0x3C0),
3041
-                    0x1D6F2 => array(0x3C1), 0x1D6F3 => array(0x3B8), 0x1D6F4 => array(0x3C3),
3042
-                    0x1D6F5 => array(0x3C4), 0x1D6F6 => array(0x3C5), 0x1D6F7 => array(0x3C6),
3043
-                    0x1D6F8 => array(0x3C7), 0x1D6F9 => array(0x3C8), 0x1D6FA => array(0x3C9),
3044
-                    0x1D6FB => array(0x2207), 0x1D6FC => array(0x3B1), 0x1D6FD => array(0x3B2),
3045
-                    0x1D6FE => array(0x3B3), 0x1D6FF => array(0x3B4), 0x1D700 => array(0x3B5),
3046
-                    0x1D701 => array(0x3B6), 0x1D702 => array(0x3B7), 0x1D703 => array(0x3B8),
3047
-                    0x1D704 => array(0x3B9), 0x1D705 => array(0x3BA), 0x1D706 => array(0x3BB),
3048
-                    0x1D707 => array(0x3BC), 0x1D708 => array(0x3BD), 0x1D709 => array(0x3BE),
3049
-                    0x1D70A => array(0x3BF), 0x1D70B => array(0x3C0), 0x1D70C => array(0x3C1),
3050
-                    0x1D70D => array(0x3C3), 0x1D70E => array(0x3C3), 0x1D70F => array(0x3C4),
3051
-                    0x1D710 => array(0x3C5), 0x1D711 => array(0x3C6), 0x1D712 => array(0x3C7),
3052
-                    0x1D713 => array(0x3C8), 0x1D714 => array(0x3C9), 0x1D715 => array(0x2202),
3053
-                    0x1D716 => array(0x3B5), 0x1D717 => array(0x3B8), 0x1D718 => array(0x3BA),
3054
-                    0x1D719 => array(0x3C6), 0x1D71A => array(0x3C1), 0x1D71B => array(0x3C0),
3055
-                    0x1D71C => array(0x3B1), 0x1D71D => array(0x3B2), 0x1D71E => array(0x3B3),
3056
-                    0x1D71F => array(0x3B4), 0x1D720 => array(0x3B5), 0x1D721 => array(0x3B6),
3057
-                    0x1D722 => array(0x3B7), 0x1D723 => array(0x3B8), 0x1D724 => array(0x3B9),
3058
-                    0x1D725 => array(0x3BA), 0x1D726 => array(0x3BB), 0x1D727 => array(0x3BC),
3059
-                    0x1D728 => array(0x3BD), 0x1D729 => array(0x3BE), 0x1D72A => array(0x3BF),
3060
-                    0x1D72B => array(0x3C0), 0x1D72C => array(0x3C1), 0x1D72D => array(0x3B8),
3061
-                    0x1D72E => array(0x3C3), 0x1D72F => array(0x3C4), 0x1D730 => array(0x3C5),
3062
-                    0x1D731 => array(0x3C6), 0x1D732 => array(0x3C7), 0x1D733 => array(0x3C8),
3063
-                    0x1D734 => array(0x3C9), 0x1D735 => array(0x2207), 0x1D736 => array(0x3B1),
3064
-                    0x1D737 => array(0x3B2), 0x1D738 => array(0x3B3), 0x1D739 => array(0x3B4),
3065
-                    0x1D73A => array(0x3B5), 0x1D73B => array(0x3B6), 0x1D73C => array(0x3B7),
3066
-                    0x1D73D => array(0x3B8), 0x1D73E => array(0x3B9), 0x1D73F => array(0x3BA),
3067
-                    0x1D740 => array(0x3BB), 0x1D741 => array(0x3BC), 0x1D742 => array(0x3BD),
3068
-                    0x1D743 => array(0x3BE), 0x1D744 => array(0x3BF), 0x1D745 => array(0x3C0),
3069
-                    0x1D746 => array(0x3C1), 0x1D747 => array(0x3C3), 0x1D748 => array(0x3C3),
3070
-                    0x1D749 => array(0x3C4), 0x1D74A => array(0x3C5), 0x1D74B => array(0x3C6),
3071
-                    0x1D74C => array(0x3C7), 0x1D74D => array(0x3C8), 0x1D74E => array(0x3C9),
3072
-                    0x1D74F => array(0x2202), 0x1D750 => array(0x3B5), 0x1D751 => array(0x3B8),
3073
-                    0x1D752 => array(0x3BA), 0x1D753 => array(0x3C6), 0x1D754 => array(0x3C1),
3074
-                    0x1D755 => array(0x3C0), 0x1D756 => array(0x3B1), 0x1D757 => array(0x3B2),
3075
-                    0x1D758 => array(0x3B3), 0x1D759 => array(0x3B4), 0x1D75A => array(0x3B5),
3076
-                    0x1D75B => array(0x3B6), 0x1D75C => array(0x3B7), 0x1D75D => array(0x3B8),
3077
-                    0x1D75E => array(0x3B9), 0x1D75F => array(0x3BA), 0x1D760 => array(0x3BB),
3078
-                    0x1D761 => array(0x3BC), 0x1D762 => array(0x3BD), 0x1D763 => array(0x3BE),
3079
-                    0x1D764 => array(0x3BF), 0x1D765 => array(0x3C0), 0x1D766 => array(0x3C1),
3080
-                    0x1D767 => array(0x3B8), 0x1D768 => array(0x3C3), 0x1D769 => array(0x3C4),
3081
-                    0x1D76A => array(0x3C5), 0x1D76B => array(0x3C6), 0x1D76C => array(0x3C7),
3082
-                    0x1D76D => array(0x3C8), 0x1D76E => array(0x3C9), 0x1D76F => array(0x2207),
3083
-                    0x1D770 => array(0x3B1), 0x1D771 => array(0x3B2), 0x1D772 => array(0x3B3),
3084
-                    0x1D773 => array(0x3B4), 0x1D774 => array(0x3B5), 0x1D775 => array(0x3B6),
3085
-                    0x1D776 => array(0x3B7), 0x1D777 => array(0x3B8), 0x1D778 => array(0x3B9),
3086
-                    0x1D779 => array(0x3BA), 0x1D77A => array(0x3BB), 0x1D77B => array(0x3BC),
3087
-                    0x1D77C => array(0x3BD), 0x1D77D => array(0x3BE), 0x1D77E => array(0x3BF),
3088
-                    0x1D77F => array(0x3C0), 0x1D780 => array(0x3C1), 0x1D781 => array(0x3C3),
3089
-                    0x1D782 => array(0x3C3), 0x1D783 => array(0x3C4), 0x1D784 => array(0x3C5),
3090
-                    0x1D785 => array(0x3C6), 0x1D786 => array(0x3C7), 0x1D787 => array(0x3C8),
3091
-                    0x1D788 => array(0x3C9), 0x1D789 => array(0x2202), 0x1D78A => array(0x3B5),
3092
-                    0x1D78B => array(0x3B8), 0x1D78C => array(0x3BA), 0x1D78D => array(0x3C6),
3093
-                    0x1D78E => array(0x3C1), 0x1D78F => array(0x3C0), 0x1D790 => array(0x3B1),
3094
-                    0x1D791 => array(0x3B2), 0x1D792 => array(0x3B3), 0x1D793 => array(0x3B4),
3095
-                    0x1D794 => array(0x3B5), 0x1D795 => array(0x3B6), 0x1D796 => array(0x3B7),
3096
-                    0x1D797 => array(0x3B8), 0x1D798 => array(0x3B9), 0x1D799 => array(0x3BA),
3097
-                    0x1D79A => array(0x3BB), 0x1D79B => array(0x3BC), 0x1D79C => array(0x3BD),
3098
-                    0x1D79D => array(0x3BE), 0x1D79E => array(0x3BF), 0x1D79F => array(0x3C0),
3099
-                    0x1D7A0 => array(0x3C1), 0x1D7A1 => array(0x3B8), 0x1D7A2 => array(0x3C3),
3100
-                    0x1D7A3 => array(0x3C4), 0x1D7A4 => array(0x3C5), 0x1D7A5 => array(0x3C6),
3101
-                    0x1D7A6 => array(0x3C7), 0x1D7A7 => array(0x3C8), 0x1D7A8 => array(0x3C9),
3102
-                    0x1D7A9 => array(0x2207), 0x1D7AA => array(0x3B1), 0x1D7AB => array(0x3B2),
3103
-                    0x1D7AC => array(0x3B3), 0x1D7AD => array(0x3B4), 0x1D7AE => array(0x3B5),
3104
-                    0x1D7AF => array(0x3B6), 0x1D7B0 => array(0x3B7), 0x1D7B1 => array(0x3B8),
3105
-                    0x1D7B2 => array(0x3B9), 0x1D7B3 => array(0x3BA), 0x1D7B4 => array(0x3BB),
3106
-                    0x1D7B5 => array(0x3BC), 0x1D7B6 => array(0x3BD), 0x1D7B7 => array(0x3BE),
3107
-                    0x1D7B8 => array(0x3BF), 0x1D7B9 => array(0x3C0), 0x1D7BA => array(0x3C1),
3108
-                    0x1D7BB => array(0x3C3), 0x1D7BC => array(0x3C3), 0x1D7BD => array(0x3C4),
3109
-                    0x1D7BE => array(0x3C5), 0x1D7BF => array(0x3C6), 0x1D7C0 => array(0x3C7),
3110
-                    0x1D7C1 => array(0x3C8), 0x1D7C2 => array(0x3C9), 0x1D7C3 => array(0x2202),
3111
-                    0x1D7C4 => array(0x3B5), 0x1D7C5 => array(0x3B8), 0x1D7C6 => array(0x3BA),
3112
-                    0x1D7C7 => array(0x3C6), 0x1D7C8 => array(0x3C1), 0x1D7C9 => array(0x3C0),
3113
-                    0x1D7CA => array(0x3DD), 0x1D7CB => array(0x3DD), 0x1D7CE => array(0x30),
3114
-                    0x1D7CF => array(0x31), 0x1D7D0 => array(0x32), 0x1D7D1 => array(0x33),
3115
-                    0x1D7D2 => array(0x34), 0x1D7D3 => array(0x35), 0x1D7D4 => array(0x36),
3116
-                    0x1D7D5 => array(0x37), 0x1D7D6 => array(0x38), 0x1D7D7 => array(0x39),
3117
-                    0x1D7D8 => array(0x30), 0x1D7D9 => array(0x31), 0x1D7DA => array(0x32),
3118
-                    0x1D7DB => array(0x33), 0x1D7DC => array(0x34), 0x1D7DD => array(0x35),
3119
-                    0x1D7DE => array(0x36), 0x1D7DF => array(0x37), 0x1D7E0 => array(0x38),
3120
-                    0x1D7E1 => array(0x39), 0x1D7E2 => array(0x30), 0x1D7E3 => array(0x31),
3121
-                    0x1D7E4 => array(0x32), 0x1D7E5 => array(0x33), 0x1D7E6 => array(0x34),
3122
-                    0x1D7E7 => array(0x35), 0x1D7E8 => array(0x36), 0x1D7E9 => array(0x37),
3123
-                    0x1D7EA => array(0x38), 0x1D7EB => array(0x39), 0x1D7EC => array(0x30),
3124
-                    0x1D7ED => array(0x31), 0x1D7EE => array(0x32), 0x1D7EF => array(0x33),
3125
-                    0x1D7F0 => array(0x34), 0x1D7F1 => array(0x35), 0x1D7F2 => array(0x36),
3126
-                    0x1D7F3 => array(0x37), 0x1D7F4 => array(0x38), 0x1D7F5 => array(0x39),
3127
-                    0x1D7F6 => array(0x30), 0x1D7F7 => array(0x31), 0x1D7F8 => array(0x32),
3128
-                    0x1D7F9 => array(0x33), 0x1D7FA => array(0x34), 0x1D7FB => array(0x35),
3129
-                    0x1D7FC => array(0x36), 0x1D7FD => array(0x37), 0x1D7FE => array(0x38),
3130
-                    0x1D7FF => array(0x39), 0x1EE00 => array(0x627), 0x1EE01 => array(0x628),
3131
-                    0x1EE02 => array(0x62C), 0x1EE03 => array(0x62F), 0x1EE05 => array(0x648),
3132
-                    0x1EE06 => array(0x632), 0x1EE07 => array(0x62D), 0x1EE08 => array(0x637),
3133
-                    0x1EE09 => array(0x64A), 0x1EE0A => array(0x643), 0x1EE0B => array(0x644),
3134
-                    0x1EE0C => array(0x645), 0x1EE0D => array(0x646), 0x1EE0E => array(0x633),
3135
-                    0x1EE0F => array(0x639), 0x1EE10 => array(0x641), 0x1EE11 => array(0x635),
3136
-                    0x1EE12 => array(0x642), 0x1EE13 => array(0x631), 0x1EE14 => array(0x634),
3137
-                    0x1EE15 => array(0x62A), 0x1EE16 => array(0x62B), 0x1EE17 => array(0x62E),
3138
-                    0x1EE18 => array(0x630), 0x1EE19 => array(0x636), 0x1EE1A => array(0x638),
3139
-                    0x1EE1B => array(0x63A), 0x1EE1C => array(0x66E), 0x1EE1D => array(0x6BA),
3140
-                    0x1EE1E => array(0x6A1), 0x1EE1F => array(0x66F), 0x1EE21 => array(0x628),
3141
-                    0x1EE22 => array(0x62C), 0x1EE24 => array(0x647), 0x1EE27 => array(0x62D),
3142
-                    0x1EE29 => array(0x64A), 0x1EE2A => array(0x643), 0x1EE2B => array(0x644),
3143
-                    0x1EE2C => array(0x645), 0x1EE2D => array(0x646), 0x1EE2E => array(0x633),
3144
-                    0x1EE2F => array(0x639), 0x1EE30 => array(0x641), 0x1EE31 => array(0x635),
3145
-                    0x1EE32 => array(0x642), 0x1EE34 => array(0x634), 0x1EE35 => array(0x62A),
3146
-                    0x1EE36 => array(0x62B), 0x1EE37 => array(0x62E), 0x1EE39 => array(0x636),
3147
-                    0x1EE3B => array(0x63A), 0x1EE42 => array(0x62C), 0x1EE47 => array(0x62D),
3148
-                    0x1EE49 => array(0x64A), 0x1EE4B => array(0x644), 0x1EE4D => array(0x646),
3149
-                    0x1EE4E => array(0x633), 0x1EE4F => array(0x639), 0x1EE51 => array(0x635),
3150
-                    0x1EE52 => array(0x642), 0x1EE54 => array(0x634), 0x1EE57 => array(0x62E),
3151
-                    0x1EE59 => array(0x636), 0x1EE5B => array(0x63A), 0x1EE5D => array(0x6BA),
3152
-                    0x1EE5F => array(0x66F), 0x1EE61 => array(0x628), 0x1EE62 => array(0x62C),
3153
-                    0x1EE64 => array(0x647), 0x1EE67 => array(0x62D), 0x1EE68 => array(0x637),
3154
-                    0x1EE69 => array(0x64A), 0x1EE6A => array(0x643), 0x1EE6C => array(0x645),
3155
-                    0x1EE6D => array(0x646), 0x1EE6E => array(0x633), 0x1EE6F => array(0x639),
3156
-                    0x1EE70 => array(0x641), 0x1EE71 => array(0x635), 0x1EE72 => array(0x642),
3157
-                    0x1EE74 => array(0x634), 0x1EE75 => array(0x62A), 0x1EE76 => array(0x62B),
3158
-                    0x1EE77 => array(0x62E), 0x1EE79 => array(0x636), 0x1EE7A => array(0x638),
3159
-                    0x1EE7B => array(0x63A), 0x1EE7C => array(0x66E), 0x1EE7E => array(0x6A1),
3160
-                    0x1EE80 => array(0x627), 0x1EE81 => array(0x628), 0x1EE82 => array(0x62C),
3161
-                    0x1EE83 => array(0x62F), 0x1EE84 => array(0x647), 0x1EE85 => array(0x648),
3162
-                    0x1EE86 => array(0x632), 0x1EE87 => array(0x62D), 0x1EE88 => array(0x637),
3163
-                    0x1EE89 => array(0x64A), 0x1EE8B => array(0x644), 0x1EE8C => array(0x645),
3164
-                    0x1EE8D => array(0x646), 0x1EE8E => array(0x633), 0x1EE8F => array(0x639),
3165
-                    0x1EE90 => array(0x641), 0x1EE91 => array(0x635), 0x1EE92 => array(0x642),
3166
-                    0x1EE93 => array(0x631), 0x1EE94 => array(0x634), 0x1EE95 => array(0x62A),
3167
-                    0x1EE96 => array(0x62B), 0x1EE97 => array(0x62E), 0x1EE98 => array(0x630),
3168
-                    0x1EE99 => array(0x636), 0x1EE9A => array(0x638), 0x1EE9B => array(0x63A),
3169
-                    0x1EEA1 => array(0x628), 0x1EEA2 => array(0x62C), 0x1EEA3 => array(0x62F),
3170
-                    0x1EEA5 => array(0x648), 0x1EEA6 => array(0x632), 0x1EEA7 => array(0x62D),
3171
-                    0x1EEA8 => array(0x637), 0x1EEA9 => array(0x64A), 0x1EEAB => array(0x644),
3172
-                    0x1EEAC => array(0x645), 0x1EEAD => array(0x646), 0x1EEAE => array(0x633),
3173
-                    0x1EEAF => array(0x639), 0x1EEB0 => array(0x641), 0x1EEB1 => array(0x635),
3174
-                    0x1EEB2 => array(0x642), 0x1EEB3 => array(0x631), 0x1EEB4 => array(0x634),
3175
-                    0x1EEB5 => array(0x62A), 0x1EEB6 => array(0x62B), 0x1EEB7 => array(0x62E),
3176
-                    0x1EEB8 => array(0x630), 0x1EEB9 => array(0x636), 0x1EEBA => array(0x638),
3177
-                    0x1EEBB => array(0x63A), 0x1F12A => array(0x3014, 0x73, 0x3015), 0x1F12B => array(0x63),
3178
-                    0x1F12C => array(0x72), 0x1F12D => array(0x63, 0x64), 0x1F12E => array(0x77, 0x7A),
3179
-                    0x1F130 => array(0x61), 0x1F131 => array(0x62), 0x1F132 => array(0x63),
3180
-                    0x1F133 => array(0x64), 0x1F134 => array(0x65), 0x1F135 => array(0x66),
3181
-                    0x1F136 => array(0x67), 0x1F137 => array(0x68), 0x1F138 => array(0x69),
3182
-                    0x1F139 => array(0x6A), 0x1F13A => array(0x6B), 0x1F13B => array(0x6C),
3183
-                    0x1F13C => array(0x6D), 0x1F13D => array(0x6E), 0x1F13E => array(0x6F),
3184
-                    0x1F13F => array(0x70), 0x1F140 => array(0x71), 0x1F141 => array(0x72),
3185
-                    0x1F142 => array(0x73), 0x1F143 => array(0x74), 0x1F144 => array(0x75),
3186
-                    0x1F145 => array(0x76), 0x1F146 => array(0x77), 0x1F147 => array(0x78),
3187
-                    0x1F148 => array(0x79), 0x1F149 => array(0x7A), 0x1F14A => array(0x68, 0x76),
3188
-                    0x1F14B => array(0x6D, 0x76), 0x1F14C => array(0x73, 0x64), 0x1F14D => array(0x73, 0x73),
3189
-                    0x1F14E => array(0x70, 0x70, 0x76), 0x1F14F => array(0x77, 0x63), 0x1F16A => array(0x6D, 0x63),
3190
-                    0x1F16B => array(0x6D, 0x64), 0x1F190 => array(0x64, 0x6A), 0x1F200 => array(0x307B, 0x304B),
3191
-                    0x1F201 => array(0x30B3, 0x30B3), 0x1F202 => array(0x30B5), 0x1F210 => array(0x624B),
3192
-                    0x1F211 => array(0x5B57), 0x1F212 => array(0x53CC), 0x1F213 => array(0x30C7),
3193
-                    0x1F214 => array(0x4E8C), 0x1F215 => array(0x591A), 0x1F216 => array(0x89E3),
3194
-                    0x1F217 => array(0x5929), 0x1F218 => array(0x4EA4), 0x1F219 => array(0x6620),
3195
-                    0x1F21A => array(0x7121), 0x1F21B => array(0x6599), 0x1F21C => array(0x524D),
3196
-                    0x1F21D => array(0x5F8C), 0x1F21E => array(0x518D), 0x1F21F => array(0x65B0),
3197
-                    0x1F220 => array(0x521D), 0x1F221 => array(0x7D42), 0x1F222 => array(0x751F),
3198
-                    0x1F223 => array(0x8CA9), 0x1F224 => array(0x58F0), 0x1F225 => array(0x5439),
3199
-                    0x1F226 => array(0x6F14), 0x1F227 => array(0x6295), 0x1F228 => array(0x6355),
3200
-                    0x1F229 => array(0x4E00), 0x1F22A => array(0x4E09), 0x1F22B => array(0x904A),
3201
-                    0x1F22C => array(0x5DE6), 0x1F22D => array(0x4E2D), 0x1F22E => array(0x53F3),
3202
-                    0x1F22F => array(0x6307), 0x1F230 => array(0x8D70), 0x1F231 => array(0x6253),
3203
-                    0x1F232 => array(0x7981), 0x1F233 => array(0x7A7A), 0x1F234 => array(0x5408),
3204
-                    0x1F235 => array(0x6E80), 0x1F236 => array(0x6709), 0x1F237 => array(0x6708),
3205
-                    0x1F238 => array(0x7533), 0x1F239 => array(0x5272), 0x1F23A => array(0x55B6),
3206
-                    0x1F240 => array(0x3014, 0x672C, 0x3015), 0x1F241 => array(0x3014, 0x4E09, 0x3015), 0x1F242 => array(0x3014, 0x4E8C, 0x3015),
3207
-                    0x1F243 => array(0x3014, 0x5B89, 0x3015), 0x1F244 => array(0x3014, 0x70B9, 0x3015), 0x1F245 => array(0x3014, 0x6253, 0x3015),
3208
-                    0x1F246 => array(0x3014, 0x76D7, 0x3015), 0x1F247 => array(0x3014, 0x52DD, 0x3015), 0x1F248 => array(0x3014, 0x6557, 0x3015),
3209
-                    0x1F250 => array(0x5F97), 0x1F251 => array(0x53EF), 0x2F800 => array(0x4E3D),
3210
-                    0x2F801 => array(0x4E38), 0x2F802 => array(0x4E41), 0x2F803 => array(0x20122),
3211
-                    0x2F804 => array(0x4F60), 0x2F805 => array(0x4FAE), 0x2F806 => array(0x4FBB),
3212
-                    0x2F807 => array(0x5002), 0x2F808 => array(0x507A), 0x2F809 => array(0x5099),
3213
-                    0x2F80A => array(0x50E7), 0x2F80B => array(0x50CF), 0x2F80C => array(0x349E),
3214
-                    0x2F80D => array(0x2063A), 0x2F80E => array(0x514D), 0x2F80F => array(0x5154),
3215
-                    0x2F810 => array(0x5164), 0x2F811 => array(0x5177), 0x2F812 => array(0x2051C),
3216
-                    0x2F813 => array(0x34B9), 0x2F814 => array(0x5167), 0x2F815 => array(0x518D),
3217
-                    0x2F816 => array(0x2054B), 0x2F817 => array(0x5197), 0x2F818 => array(0x51A4),
3218
-                    0x2F819 => array(0x4ECC), 0x2F81A => array(0x51AC), 0x2F81B => array(0x51B5),
3219
-                    0x2F81C => array(0x291DF), 0x2F81D => array(0x51F5), 0x2F81E => array(0x5203),
3220
-                    0x2F81F => array(0x34DF), 0x2F820 => array(0x523B), 0x2F821 => array(0x5246),
3221
-                    0x2F822 => array(0x5272), 0x2F823 => array(0x5277), 0x2F824 => array(0x3515),
3222
-                    0x2F825 => array(0x52C7), 0x2F826 => array(0x52C9), 0x2F827 => array(0x52E4),
3223
-                    0x2F828 => array(0x52FA), 0x2F829 => array(0x5305), 0x2F82A => array(0x5306),
3224
-                    0x2F82B => array(0x5317), 0x2F82C => array(0x5349), 0x2F82D => array(0x5351),
3225
-                    0x2F82E => array(0x535A), 0x2F82F => array(0x5373), 0x2F830 => array(0x537D),
3226
-                    0x2F831 => array(0x537F), 0x2F832 => array(0x537F), 0x2F833 => array(0x537F),
3227
-                    0x2F834 => array(0x20A2C), 0x2F835 => array(0x7070), 0x2F836 => array(0x53CA),
3228
-                    0x2F837 => array(0x53DF), 0x2F838 => array(0x20B63), 0x2F839 => array(0x53EB),
3229
-                    0x2F83A => array(0x53F1), 0x2F83B => array(0x5406), 0x2F83C => array(0x549E),
3230
-                    0x2F83D => array(0x5438), 0x2F83E => array(0x5448), 0x2F83F => array(0x5468),
3231
-                    0x2F840 => array(0x54A2), 0x2F841 => array(0x54F6), 0x2F842 => array(0x5510),
3232
-                    0x2F843 => array(0x5553), 0x2F844 => array(0x5563), 0x2F845 => array(0x5584),
3233
-                    0x2F846 => array(0x5584), 0x2F847 => array(0x5599), 0x2F848 => array(0x55AB),
3234
-                    0x2F849 => array(0x55B3), 0x2F84A => array(0x55C2), 0x2F84B => array(0x5716),
3235
-                    0x2F84C => array(0x5606), 0x2F84D => array(0x5717), 0x2F84E => array(0x5651),
3236
-                    0x2F84F => array(0x5674), 0x2F850 => array(0x5207), 0x2F851 => array(0x58EE),
3237
-                    0x2F852 => array(0x57CE), 0x2F853 => array(0x57F4), 0x2F854 => array(0x580D),
3238
-                    0x2F855 => array(0x578B), 0x2F856 => array(0x5832), 0x2F857 => array(0x5831),
3239
-                    0x2F858 => array(0x58AC), 0x2F859 => array(0x214E4), 0x2F85A => array(0x58F2),
3240
-                    0x2F85B => array(0x58F7), 0x2F85C => array(0x5906), 0x2F85D => array(0x591A),
3241
-                    0x2F85E => array(0x5922), 0x2F85F => array(0x5962), 0x2F860 => array(0x216A8),
3242
-                    0x2F861 => array(0x216EA), 0x2F862 => array(0x59EC), 0x2F863 => array(0x5A1B),
3243
-                    0x2F864 => array(0x5A27), 0x2F865 => array(0x59D8), 0x2F866 => array(0x5A66),
3244
-                    0x2F867 => array(0x36EE), 0x2F869 => array(0x5B08), 0x2F86A => array(0x5B3E),
3245
-                    0x2F86B => array(0x5B3E), 0x2F86C => array(0x219C8), 0x2F86D => array(0x5BC3),
3246
-                    0x2F86E => array(0x5BD8), 0x2F86F => array(0x5BE7), 0x2F870 => array(0x5BF3),
3247
-                    0x2F871 => array(0x21B18), 0x2F872 => array(0x5BFF), 0x2F873 => array(0x5C06),
3248
-                    0x2F875 => array(0x5C22), 0x2F876 => array(0x3781), 0x2F877 => array(0x5C60),
3249
-                    0x2F878 => array(0x5C6E), 0x2F879 => array(0x5CC0), 0x2F87A => array(0x5C8D),
3250
-                    0x2F87B => array(0x21DE4), 0x2F87C => array(0x5D43), 0x2F87D => array(0x21DE6),
3251
-                    0x2F87E => array(0x5D6E), 0x2F87F => array(0x5D6B), 0x2F880 => array(0x5D7C),
3252
-                    0x2F881 => array(0x5DE1), 0x2F882 => array(0x5DE2), 0x2F883 => array(0x382F),
3253
-                    0x2F884 => array(0x5DFD), 0x2F885 => array(0x5E28), 0x2F886 => array(0x5E3D),
3254
-                    0x2F887 => array(0x5E69), 0x2F888 => array(0x3862), 0x2F889 => array(0x22183),
3255
-                    0x2F88A => array(0x387C), 0x2F88B => array(0x5EB0), 0x2F88C => array(0x5EB3),
3256
-                    0x2F88D => array(0x5EB6), 0x2F88E => array(0x5ECA), 0x2F88F => array(0x2A392),
3257
-                    0x2F890 => array(0x5EFE), 0x2F891 => array(0x22331), 0x2F892 => array(0x22331),
3258
-                    0x2F893 => array(0x8201), 0x2F894 => array(0x5F22), 0x2F895 => array(0x5F22),
3259
-                    0x2F896 => array(0x38C7), 0x2F897 => array(0x232B8), 0x2F898 => array(0x261DA),
3260
-                    0x2F899 => array(0x5F62), 0x2F89A => array(0x5F6B), 0x2F89B => array(0x38E3),
3261
-                    0x2F89C => array(0x5F9A), 0x2F89D => array(0x5FCD), 0x2F89E => array(0x5FD7),
3262
-                    0x2F89F => array(0x5FF9), 0x2F8A0 => array(0x6081), 0x2F8A1 => array(0x393A),
3263
-                    0x2F8A2 => array(0x391C), 0x2F8A3 => array(0x6094), 0x2F8A4 => array(0x226D4),
3264
-                    0x2F8A5 => array(0x60C7), 0x2F8A6 => array(0x6148), 0x2F8A7 => array(0x614C),
3265
-                    0x2F8A8 => array(0x614E), 0x2F8A9 => array(0x614C), 0x2F8AA => array(0x617A),
3266
-                    0x2F8AB => array(0x618E), 0x2F8AC => array(0x61B2), 0x2F8AD => array(0x61A4),
3267
-                    0x2F8AE => array(0x61AF), 0x2F8AF => array(0x61DE), 0x2F8B0 => array(0x61F2),
3268
-                    0x2F8B1 => array(0x61F6), 0x2F8B2 => array(0x6210), 0x2F8B3 => array(0x621B),
3269
-                    0x2F8B4 => array(0x625D), 0x2F8B5 => array(0x62B1), 0x2F8B6 => array(0x62D4),
3270
-                    0x2F8B7 => array(0x6350), 0x2F8B8 => array(0x22B0C), 0x2F8B9 => array(0x633D),
3271
-                    0x2F8BA => array(0x62FC), 0x2F8BB => array(0x6368), 0x2F8BC => array(0x6383),
3272
-                    0x2F8BD => array(0x63E4), 0x2F8BE => array(0x22BF1), 0x2F8BF => array(0x6422),
3273
-                    0x2F8C0 => array(0x63C5), 0x2F8C1 => array(0x63A9), 0x2F8C2 => array(0x3A2E),
3274
-                    0x2F8C3 => array(0x6469), 0x2F8C4 => array(0x647E), 0x2F8C5 => array(0x649D),
3275
-                    0x2F8C6 => array(0x6477), 0x2F8C7 => array(0x3A6C), 0x2F8C8 => array(0x654F),
3276
-                    0x2F8C9 => array(0x656C), 0x2F8CA => array(0x2300A), 0x2F8CB => array(0x65E3),
3277
-                    0x2F8CC => array(0x66F8), 0x2F8CD => array(0x6649), 0x2F8CE => array(0x3B19),
3278
-                    0x2F8CF => array(0x6691), 0x2F8D0 => array(0x3B08), 0x2F8D1 => array(0x3AE4),
3279
-                    0x2F8D2 => array(0x5192), 0x2F8D3 => array(0x5195), 0x2F8D4 => array(0x6700),
3280
-                    0x2F8D5 => array(0x669C), 0x2F8D6 => array(0x80AD), 0x2F8D7 => array(0x43D9),
3281
-                    0x2F8D8 => array(0x6717), 0x2F8D9 => array(0x671B), 0x2F8DA => array(0x6721),
3282
-                    0x2F8DB => array(0x675E), 0x2F8DC => array(0x6753), 0x2F8DD => array(0x233C3),
3283
-                    0x2F8DE => array(0x3B49), 0x2F8DF => array(0x67FA), 0x2F8E0 => array(0x6785),
3284
-                    0x2F8E1 => array(0x6852), 0x2F8E2 => array(0x6885), 0x2F8E3 => array(0x2346D),
3285
-                    0x2F8E4 => array(0x688E), 0x2F8E5 => array(0x681F), 0x2F8E6 => array(0x6914),
3286
-                    0x2F8E7 => array(0x3B9D), 0x2F8E8 => array(0x6942), 0x2F8E9 => array(0x69A3),
3287
-                    0x2F8EA => array(0x69EA), 0x2F8EB => array(0x6AA8), 0x2F8EC => array(0x236A3),
3288
-                    0x2F8ED => array(0x6ADB), 0x2F8EE => array(0x3C18), 0x2F8EF => array(0x6B21),
3289
-                    0x2F8F0 => array(0x238A7), 0x2F8F1 => array(0x6B54), 0x2F8F2 => array(0x3C4E),
3290
-                    0x2F8F3 => array(0x6B72), 0x2F8F4 => array(0x6B9F), 0x2F8F5 => array(0x6BBA),
3291
-                    0x2F8F6 => array(0x6BBB), 0x2F8F7 => array(0x23A8D), 0x2F8F8 => array(0x21D0B),
3292
-                    0x2F8F9 => array(0x23AFA), 0x2F8FA => array(0x6C4E), 0x2F8FB => array(0x23CBC),
3293
-                    0x2F8FC => array(0x6CBF), 0x2F8FD => array(0x6CCD), 0x2F8FE => array(0x6C67),
3294
-                    0x2F8FF => array(0x6D16), 0x2F900 => array(0x6D3E), 0x2F901 => array(0x6D77),
3295
-                    0x2F902 => array(0x6D41), 0x2F903 => array(0x6D69), 0x2F904 => array(0x6D78),
3296
-                    0x2F905 => array(0x6D85), 0x2F906 => array(0x23D1E), 0x2F907 => array(0x6D34),
3297
-                    0x2F908 => array(0x6E2F), 0x2F909 => array(0x6E6E), 0x2F90A => array(0x3D33),
3298
-                    0x2F90B => array(0x6ECB), 0x2F90C => array(0x6EC7), 0x2F90D => array(0x23ED1),
3299
-                    0x2F90E => array(0x6DF9), 0x2F90F => array(0x6F6E), 0x2F910 => array(0x23F5E),
3300
-                    0x2F911 => array(0x23F8E), 0x2F912 => array(0x6FC6), 0x2F913 => array(0x7039),
3301
-                    0x2F914 => array(0x701E), 0x2F915 => array(0x701B), 0x2F916 => array(0x3D96),
3302
-                    0x2F917 => array(0x704A), 0x2F918 => array(0x707D), 0x2F919 => array(0x7077),
3303
-                    0x2F91A => array(0x70AD), 0x2F91B => array(0x20525), 0x2F91C => array(0x7145),
3304
-                    0x2F91D => array(0x24263), 0x2F91E => array(0x719C), 0x2F920 => array(0x7228),
3305
-                    0x2F921 => array(0x7235), 0x2F922 => array(0x7250), 0x2F923 => array(0x24608),
3306
-                    0x2F924 => array(0x7280), 0x2F925 => array(0x7295), 0x2F926 => array(0x24735),
3307
-                    0x2F927 => array(0x24814), 0x2F928 => array(0x737A), 0x2F929 => array(0x738B),
3308
-                    0x2F92A => array(0x3EAC), 0x2F92B => array(0x73A5), 0x2F92C => array(0x3EB8),
3309
-                    0x2F92D => array(0x3EB8), 0x2F92E => array(0x7447), 0x2F92F => array(0x745C),
3310
-                    0x2F930 => array(0x7471), 0x2F931 => array(0x7485), 0x2F932 => array(0x74CA),
3311
-                    0x2F933 => array(0x3F1B), 0x2F934 => array(0x7524), 0x2F935 => array(0x24C36),
3312
-                    0x2F936 => array(0x753E), 0x2F937 => array(0x24C92), 0x2F938 => array(0x7570),
3313
-                    0x2F939 => array(0x2219F), 0x2F93A => array(0x7610), 0x2F93B => array(0x24FA1),
3314
-                    0x2F93C => array(0x24FB8), 0x2F93D => array(0x25044), 0x2F93E => array(0x3FFC),
3315
-                    0x2F93F => array(0x4008), 0x2F940 => array(0x76F4), 0x2F941 => array(0x250F3),
3316
-                    0x2F942 => array(0x250F2), 0x2F943 => array(0x25119), 0x2F944 => array(0x25133),
3317
-                    0x2F945 => array(0x771E), 0x2F946 => array(0x771F), 0x2F947 => array(0x771F),
3318
-                    0x2F948 => array(0x774A), 0x2F949 => array(0x4039), 0x2F94A => array(0x778B),
3319
-                    0x2F94B => array(0x4046), 0x2F94C => array(0x4096), 0x2F94D => array(0x2541D),
3320
-                    0x2F94E => array(0x784E), 0x2F94F => array(0x788C), 0x2F950 => array(0x78CC),
3321
-                    0x2F951 => array(0x40E3), 0x2F952 => array(0x25626), 0x2F953 => array(0x7956),
3322
-                    0x2F954 => array(0x2569A), 0x2F955 => array(0x256C5), 0x2F956 => array(0x798F),
3323
-                    0x2F957 => array(0x79EB), 0x2F958 => array(0x412F), 0x2F959 => array(0x7A40),
3324
-                    0x2F95A => array(0x7A4A), 0x2F95B => array(0x7A4F), 0x2F95C => array(0x2597C),
3325
-                    0x2F95D => array(0x25AA7), 0x2F95E => array(0x25AA7), 0x2F960 => array(0x4202),
3326
-                    0x2F961 => array(0x25BAB), 0x2F962 => array(0x7BC6), 0x2F963 => array(0x7BC9),
3327
-                    0x2F964 => array(0x4227), 0x2F965 => array(0x25C80), 0x2F966 => array(0x7CD2),
3328
-                    0x2F967 => array(0x42A0), 0x2F968 => array(0x7CE8), 0x2F969 => array(0x7CE3),
3329
-                    0x2F96A => array(0x7D00), 0x2F96B => array(0x25F86), 0x2F96C => array(0x7D63),
3330
-                    0x2F96D => array(0x4301), 0x2F96E => array(0x7DC7), 0x2F96F => array(0x7E02),
3331
-                    0x2F970 => array(0x7E45), 0x2F971 => array(0x4334), 0x2F972 => array(0x26228),
3332
-                    0x2F973 => array(0x26247), 0x2F974 => array(0x4359), 0x2F975 => array(0x262D9),
3333
-                    0x2F976 => array(0x7F7A), 0x2F977 => array(0x2633E), 0x2F978 => array(0x7F95),
3334
-                    0x2F979 => array(0x7FFA), 0x2F97A => array(0x8005), 0x2F97B => array(0x264DA),
3335
-                    0x2F97C => array(0x26523), 0x2F97D => array(0x8060), 0x2F97E => array(0x265A8),
3336
-                    0x2F97F => array(0x8070), 0x2F980 => array(0x2335F), 0x2F981 => array(0x43D5),
3337
-                    0x2F982 => array(0x80B2), 0x2F983 => array(0x8103), 0x2F984 => array(0x440B),
3338
-                    0x2F985 => array(0x813E), 0x2F986 => array(0x5AB5), 0x2F987 => array(0x267A7),
3339
-                    0x2F988 => array(0x267B5), 0x2F989 => array(0x23393), 0x2F98A => array(0x2339C),
3340
-                    0x2F98B => array(0x8201), 0x2F98C => array(0x8204), 0x2F98D => array(0x8F9E),
3341
-                    0x2F98E => array(0x446B), 0x2F98F => array(0x8291), 0x2F990 => array(0x828B),
3342
-                    0x2F991 => array(0x829D), 0x2F992 => array(0x52B3), 0x2F993 => array(0x82B1),
3343
-                    0x2F994 => array(0x82B3), 0x2F995 => array(0x82BD), 0x2F996 => array(0x82E6),
3344
-                    0x2F997 => array(0x26B3C), 0x2F998 => array(0x82E5), 0x2F999 => array(0x831D),
3345
-                    0x2F99A => array(0x8363), 0x2F99B => array(0x83AD), 0x2F99C => array(0x8323),
3346
-                    0x2F99D => array(0x83BD), 0x2F99E => array(0x83E7), 0x2F99F => array(0x8457),
3347
-                    0x2F9A0 => array(0x8353), 0x2F9A1 => array(0x83CA), 0x2F9A2 => array(0x83CC),
3348
-                    0x2F9A3 => array(0x83DC), 0x2F9A4 => array(0x26C36), 0x2F9A5 => array(0x26D6B),
3349
-                    0x2F9A6 => array(0x26CD5), 0x2F9A7 => array(0x452B), 0x2F9A8 => array(0x84F1),
3350
-                    0x2F9A9 => array(0x84F3), 0x2F9AA => array(0x8516), 0x2F9AB => array(0x273CA),
3351
-                    0x2F9AC => array(0x8564), 0x2F9AD => array(0x26F2C), 0x2F9AE => array(0x455D),
3352
-                    0x2F9AF => array(0x4561), 0x2F9B0 => array(0x26FB1), 0x2F9B1 => array(0x270D2),
3353
-                    0x2F9B2 => array(0x456B), 0x2F9B3 => array(0x8650), 0x2F9B4 => array(0x865C),
3354
-                    0x2F9B5 => array(0x8667), 0x2F9B6 => array(0x8669), 0x2F9B7 => array(0x86A9),
3355
-                    0x2F9B8 => array(0x8688), 0x2F9B9 => array(0x870E), 0x2F9BA => array(0x86E2),
3356
-                    0x2F9BB => array(0x8779), 0x2F9BC => array(0x8728), 0x2F9BD => array(0x876B),
3357
-                    0x2F9BE => array(0x8786), 0x2F9C0 => array(0x87E1), 0x2F9C1 => array(0x8801),
3358
-                    0x2F9C2 => array(0x45F9), 0x2F9C3 => array(0x8860), 0x2F9C4 => array(0x8863),
3359
-                    0x2F9C5 => array(0x27667), 0x2F9C6 => array(0x88D7), 0x2F9C7 => array(0x88DE),
3360
-                    0x2F9C8 => array(0x4635), 0x2F9C9 => array(0x88FA), 0x2F9CA => array(0x34BB),
3361
-                    0x2F9CB => array(0x278AE), 0x2F9CC => array(0x27966), 0x2F9CD => array(0x46BE),
3362
-                    0x2F9CE => array(0x46C7), 0x2F9CF => array(0x8AA0), 0x2F9D0 => array(0x8AED),
3363
-                    0x2F9D1 => array(0x8B8A), 0x2F9D2 => array(0x8C55), 0x2F9D3 => array(0x27CA8),
3364
-                    0x2F9D4 => array(0x8CAB), 0x2F9D5 => array(0x8CC1), 0x2F9D6 => array(0x8D1B),
3365
-                    0x2F9D7 => array(0x8D77), 0x2F9D8 => array(0x27F2F), 0x2F9D9 => array(0x20804),
3366
-                    0x2F9DA => array(0x8DCB), 0x2F9DB => array(0x8DBC), 0x2F9DC => array(0x8DF0),
3367
-                    0x2F9DD => array(0x208DE), 0x2F9DE => array(0x8ED4), 0x2F9DF => array(0x8F38),
3368
-                    0x2F9E0 => array(0x285D2), 0x2F9E1 => array(0x285ED), 0x2F9E2 => array(0x9094),
3369
-                    0x2F9E3 => array(0x90F1), 0x2F9E4 => array(0x9111), 0x2F9E5 => array(0x2872E),
3370
-                    0x2F9E6 => array(0x911B), 0x2F9E7 => array(0x9238), 0x2F9E8 => array(0x92D7),
3371
-                    0x2F9E9 => array(0x92D8), 0x2F9EA => array(0x927C), 0x2F9EB => array(0x93F9),
3372
-                    0x2F9EC => array(0x9415), 0x2F9ED => array(0x28BFA), 0x2F9EE => array(0x958B),
3373
-                    0x2F9EF => array(0x4995), 0x2F9F0 => array(0x95B7), 0x2F9F1 => array(0x28D77),
3374
-                    0x2F9F2 => array(0x49E6), 0x2F9F3 => array(0x96C3), 0x2F9F4 => array(0x5DB2),
3375
-                    0x2F9F5 => array(0x9723), 0x2F9F6 => array(0x29145), 0x2F9F7 => array(0x2921A),
3376
-                    0x2F9F8 => array(0x4A6E), 0x2F9F9 => array(0x4A76), 0x2F9FA => array(0x97E0),
3377
-                    0x2F9FB => array(0x2940A), 0x2F9FC => array(0x4AB2), 0x2F9FD => array(0x29496),
3378
-                    0x2F9FE => array(0x980B), 0x2F9FF => array(0x980B), 0x2FA00 => array(0x9829),
3379
-                    0x2FA01 => array(0x295B6), 0x2FA02 => array(0x98E2), 0x2FA03 => array(0x4B33),
3380
-                    0x2FA04 => array(0x9929), 0x2FA05 => array(0x99A7), 0x2FA06 => array(0x99C2),
3381
-                    0x2FA07 => array(0x99FE), 0x2FA08 => array(0x4BCE), 0x2FA09 => array(0x29B30),
3382
-                    0x2FA0A => array(0x9B12), 0x2FA0B => array(0x9C40), 0x2FA0C => array(0x9CFD),
3383
-                    0x2FA0D => array(0x4CCE), 0x2FA0E => array(0x4CED), 0x2FA0F => array(0x9D67),
3384
-                    0x2FA10 => array(0x2A0CE), 0x2FA11 => array(0x4CF8), 0x2FA12 => array(0x2A105),
3385
-                    0x2FA13 => array(0x2A20E), 0x2FA14 => array(0x2A291), 0x2FA15 => array(0x9EBB),
3386
-                    0x2FA16 => array(0x4D56), 0x2FA17 => array(0x9EF9), 0x2FA18 => array(0x9EFE),
3387
-                    0x2FA19 => array(0x9F05), 0x2FA1A => array(0x9F0F), 0x2FA1B => array(0x9F16),
3388
-                    0x2FA1C => array(0x9F3B), 0x2FA1D => array(0x2A600)
3389
-            ),
3390
-            'norm_combcls' => array(0x334 => 1, 0x335 => 1, 0x336 => 1, 0x337 => 1,
3391
-                    0x338 => 1, 0x93C => 7, 0x9BC => 7, 0xA3C => 7, 0xABC => 7,
3392
-                    0xB3C => 7, 0xCBC => 7, 0x1037 => 7, 0x3099 => 8, 0x309A => 8,
3393
-                    0x94D => 9, 0x9CD => 9, 0xA4D => 9, 0xACD => 9, 0xB4D => 9,
3394
-                    0xBCD => 9, 0xC4D => 9, 0xCCD => 9, 0xD4D => 9, 0xDCA => 9,
3395
-                    0xE3A => 9, 0xF84 => 9, 0x1039 => 9, 0x1714 => 9, 0x1734 => 9,
3396
-                    0x17D2 => 9, 0x5B0 => 10, 0x5B1 => 11, 0x5B2 => 12, 0x5B3 => 13,
3397
-                    0x5B4 => 14, 0x5B5 => 15, 0x5B6 => 16, 0x5B7 => 17, 0x5B8 => 18,
3398
-                    0x5B9 => 19, 0x5BB => 20, 0x5Bc => 21, 0x5BD => 22, 0x5BF => 23,
3399
-                    0x5C1 => 24, 0x5C2 => 25, 0xFB1E => 26, 0x64B => 27, 0x64C => 28,
3400
-                    0x64D => 29, 0x64E => 30, 0x64F => 31, 0x650 => 32, 0x651 => 33,
3401
-                    0x652 => 34, 0x670 => 35, 0x711 => 36, 0xC55 => 84, 0xC56 => 91,
3402
-                    0xE38 => 103, 0xE39 => 103, 0xE48 => 107, 0xE49 => 107, 0xE4A => 107,
3403
-                    0xE4B => 107, 0xEB8 => 118, 0xEB9 => 118, 0xEC8 => 122, 0xEC9 => 122,
3404
-                    0xECA => 122, 0xECB => 122, 0xF71 => 129, 0xF72 => 130, 0xF7A => 130,
3405
-                    0xF7B => 130, 0xF7C => 130, 0xF7D => 130, 0xF80 => 130, 0xF74 => 132,
3406
-                    0x321 => 202, 0x322 => 202, 0x327 => 202, 0x328 => 202, 0x31B => 216,
3407
-                    0xF39 => 216, 0x1D165 => 216, 0x1D166 => 216, 0x1D16E => 216, 0x1D16F => 216,
3408
-                    0x1D170 => 216, 0x1D171 => 216, 0x1D172 => 216, 0x302A => 218, 0x316 => 220,
3409
-                    0x317 => 220, 0x318 => 220, 0x319 => 220, 0x31C => 220, 0x31D => 220,
3410
-                    0x31E => 220, 0x31F => 220, 0x320 => 220, 0x323 => 220, 0x324 => 220,
3411
-                    0x325 => 220, 0x326 => 220, 0x329 => 220, 0x32A => 220, 0x32B => 220,
3412
-                    0x32C => 220, 0x32D => 220, 0x32E => 220, 0x32F => 220, 0x330 => 220,
3413
-                    0x331 => 220, 0x332 => 220, 0x333 => 220, 0x339 => 220, 0x33A => 220,
3414
-                    0x33B => 220, 0x33C => 220, 0x347 => 220, 0x348 => 220, 0x349 => 220,
3415
-                    0x34D => 220, 0x34E => 220, 0x353 => 220, 0x354 => 220, 0x355 => 220,
3416
-                    0x356 => 220, 0x591 => 220, 0x596 => 220, 0x59B => 220, 0x5A3 => 220,
3417
-                    0x5A4 => 220, 0x5A5 => 220, 0x5A6 => 220, 0x5A7 => 220, 0x5AA => 220,
3418
-                    0x655 => 220, 0x656 => 220, 0x6E3 => 220, 0x6EA => 220, 0x6ED => 220,
3419
-                    0x731 => 220, 0x734 => 220, 0x737 => 220, 0x738 => 220, 0x739 => 220,
3420
-                    0x73B => 220, 0x73C => 220, 0x73E => 220, 0x742 => 220, 0x744 => 220,
3421
-                    0x746 => 220, 0x748 => 220, 0x952 => 220, 0xF18 => 220, 0xF19 => 220,
3422
-                    0xF35 => 220, 0xF37 => 220, 0xFC6 => 220, 0x193B => 220, 0x20E8 => 220,
3423
-                    0x1D17B => 220, 0x1D17C => 220, 0x1D17D => 220, 0x1D17E => 220, 0x1D17F => 220,
3424
-                    0x1D180 => 220, 0x1D181 => 220, 0x1D182 => 220, 0x1D18A => 220, 0x1D18B => 220,
3425
-                    0x59A => 222, 0x5AD => 222, 0x1929 => 222, 0x302D => 222, 0x302E => 224,
3426
-                    0x302F => 224, 0x1D16D => 226, 0x5AE => 228, 0x18A9 => 228, 0x302B => 228,
3427
-                    0x300 => 230, 0x301 => 230, 0x302 => 230, 0x303 => 230, 0x304 => 230,
3428
-                    0x305 => 230, 0x306 => 230, 0x307 => 230, 0x308 => 230, 0x309 => 230,
3429
-                    0x30A => 230, 0x30B => 230, 0x30C => 230, 0x30D => 230, 0x30E => 230,
3430
-                    0x30F => 230, 0x310 => 230, 0x311 => 230, 0x312 => 230, 0x313 => 230,
3431
-                    0x314 => 230, 0x33D => 230, 0x33E => 230, 0x33F => 230, 0x340 => 230,
3432
-                    0x341 => 230, 0x342 => 230, 0x343 => 230, 0x344 => 230, 0x346 => 230,
3433
-                    0x34A => 230, 0x34B => 230, 0x34C => 230, 0x350 => 230, 0x351 => 230,
3434
-                    0x352 => 230, 0x357 => 230, 0x363 => 230, 0x364 => 230, 0x365 => 230,
3435
-                    0x366 => 230, 0x367 => 230, 0x368 => 230, 0x369 => 230, 0x36A => 230,
3436
-                    0x36B => 230, 0x36C => 230, 0x36D => 230, 0x36E => 230, 0x36F => 230,
3437
-                    0x483 => 230, 0x484 => 230, 0x485 => 230, 0x486 => 230, 0x592 => 230,
3438
-                    0x593 => 230, 0x594 => 230, 0x595 => 230, 0x597 => 230, 0x598 => 230,
3439
-                    0x599 => 230, 0x59C => 230, 0x59D => 230, 0x59E => 230, 0x59F => 230,
3440
-                    0x5A0 => 230, 0x5A1 => 230, 0x5A8 => 230, 0x5A9 => 230, 0x5AB => 230,
3441
-                    0x5AC => 230, 0x5AF => 230, 0x5C4 => 230, 0x610 => 230, 0x611 => 230,
3442
-                    0x612 => 230, 0x613 => 230, 0x614 => 230, 0x615 => 230, 0x653 => 230,
3443
-                    0x654 => 230, 0x657 => 230, 0x658 => 230, 0x6D6 => 230, 0x6D7 => 230,
3444
-                    0x6D8 => 230, 0x6D9 => 230, 0x6DA => 230, 0x6DB => 230, 0x6DC => 230,
3445
-                    0x6DF => 230, 0x6E0 => 230, 0x6E1 => 230, 0x6E2 => 230, 0x6E4 => 230,
3446
-                    0x6E7 => 230, 0x6E8 => 230, 0x6EB => 230, 0x6EC => 230, 0x730 => 230,
3447
-                    0x732 => 230, 0x733 => 230, 0x735 => 230, 0x736 => 230, 0x73A => 230,
3448
-                    0x73D => 230, 0x73F => 230, 0x740 => 230, 0x741 => 230, 0x743 => 230,
3449
-                    0x745 => 230, 0x747 => 230, 0x749 => 230, 0x74A => 230, 0x951 => 230,
3450
-                    0x953 => 230, 0x954 => 230, 0xF82 => 230, 0xF83 => 230, 0xF86 => 230,
3451
-                    0xF87 => 230, 0x170D => 230, 0x193A => 230, 0x20D0 => 230, 0x20D1 => 230,
3452
-                    0x20D4 => 230, 0x20D5 => 230, 0x20D6 => 230, 0x20D7 => 230, 0x20DB => 230,
3453
-                    0x20DC => 230, 0x20E1 => 230, 0x20E7 => 230, 0x20E9 => 230, 0xFE20 => 230,
3454
-                    0xFE21 => 230, 0xFE22 => 230, 0xFE23 => 230, 0x1D185 => 230, 0x1D186 => 230,
3455
-                    0x1D187 => 230, 0x1D189 => 230, 0x1D188 => 230, 0x1D1AA => 230, 0x1D1AB => 230,
3456
-                    0x1D1AC => 230, 0x1D1AD => 230, 0x315 => 232, 0x31A => 232, 0x302C => 232,
3457
-                    0x35F => 233, 0x362 => 233, 0x35D => 234, 0x35E => 234, 0x360 => 234,
3458
-                    0x361 => 234, 0x345 => 240
3459
-            )
3460
-    );
1376
+					0x33C3 => array(0x62, 0x71), 0x33C6 => array(0x63, 0x2215, 0x6B, 0x67),
1377
+					0x33C7 => array(0x63, 0x6F, 0x2E), 0x33C8 => array(0x64, 0x62),
1378
+					0x33C9 => array(0x67, 0x79), 0x33CB => array(0x68, 0x70),
1379
+					0x33CD => array(0x6B, 0x6B), 0x33CE => array(0x6B, 0x6D),
1380
+					0x33D7 => array(0x70, 0x68), 0x33D9 => array(0x70, 0x70, 0x6D),
1381
+					0x33DA => array(0x70, 0x72), 0x33DC => array(0x73, 0x76),
1382
+					0x33DD => array(0x77, 0x62), 0xFB00 => array(0x66, 0x66),
1383
+					0xFB01 => array(0x66, 0x69), 0xFB02 => array(0x66, 0x6C),
1384
+					0xFB03 => array(0x66, 0x66, 0x69), 0xFB04 => array(0x66, 0x66, 0x6C),
1385
+					0xFB05 => array(0x73, 0x74), 0xFB06 => array(0x73, 0x74),
1386
+					0xFB13 => array(0x574, 0x576), 0xFB14 => array(0x574, 0x565),
1387
+					0xFB15 => array(0x574, 0x56B), 0xFB16 => array(0x57E, 0x576),
1388
+					0xFB17 => array(0x574, 0x56D), 0xFF21 => array(0xFF41),
1389
+					0xFF22 => array(0xFF42), 0xFF23 => array(0xFF43), 0xFF24 => array(0xFF44),
1390
+					0xFF25 => array(0xFF45), 0xFF26 => array(0xFF46), 0xFF27 => array(0xFF47),
1391
+					0xFF28 => array(0xFF48), 0xFF29 => array(0xFF49), 0xFF2A => array(0xFF4A),
1392
+					0xFF2B => array(0xFF4B), 0xFF2C => array(0xFF4C), 0xFF2D => array(0xFF4D),
1393
+					0xFF2E => array(0xFF4E), 0xFF2F => array(0xFF4F), 0xFF30 => array(0xFF50),
1394
+					0xFF31 => array(0xFF51), 0xFF32 => array(0xFF52), 0xFF33 => array(0xFF53),
1395
+					0xFF34 => array(0xFF54), 0xFF35 => array(0xFF55), 0xFF36 => array(0xFF56),
1396
+					0xFF37 => array(0xFF57), 0xFF38 => array(0xFF58), 0xFF39 => array(0xFF59),
1397
+					0xFF3A => array(0xFF5A), 0x10400 => array(0x10428), 0x10401 => array(0x10429),
1398
+					0x10402 => array(0x1042A), 0x10403 => array(0x1042B), 0x10404 => array(0x1042C),
1399
+					0x10405 => array(0x1042D), 0x10406 => array(0x1042E), 0x10407 => array(0x1042F),
1400
+					0x10408 => array(0x10430), 0x10409 => array(0x10431), 0x1040A => array(0x10432),
1401
+					0x1040B => array(0x10433), 0x1040C => array(0x10434), 0x1040D => array(0x10435),
1402
+					0x1040E => array(0x10436), 0x1040F => array(0x10437), 0x10410 => array(0x10438),
1403
+					0x10411 => array(0x10439), 0x10412 => array(0x1043A), 0x10413 => array(0x1043B),
1404
+					0x10414 => array(0x1043C), 0x10415 => array(0x1043D), 0x10416 => array(0x1043E),
1405
+					0x10417 => array(0x1043F), 0x10418 => array(0x10440), 0x10419 => array(0x10441),
1406
+					0x1041A => array(0x10442), 0x1041B => array(0x10443), 0x1041C => array(0x10444),
1407
+					0x1041D => array(0x10445), 0x1041E => array(0x10446), 0x1041F => array(0x10447),
1408
+					0x10420 => array(0x10448), 0x10421 => array(0x10449), 0x10422 => array(0x1044A),
1409
+					0x10423 => array(0x1044B), 0x10424 => array(0x1044C), 0x10425 => array(0x1044D),
1410
+					0x1D400 => array(0x61), 0x1D401 => array(0x62), 0x1D402 => array(0x63),
1411
+					0x1D403 => array(0x64), 0x1D404 => array(0x65), 0x1D405 => array(0x66),
1412
+					0x1D406 => array(0x67), 0x1D407 => array(0x68), 0x1D408 => array(0x69),
1413
+					0x1D409 => array(0x6A), 0x1D40A => array(0x6B), 0x1D40B => array(0x6C),
1414
+					0x1D40C => array(0x6D), 0x1D40D => array(0x6E), 0x1D40E => array(0x6F),
1415
+					0x1D40F => array(0x70), 0x1D410 => array(0x71), 0x1D411 => array(0x72),
1416
+					0x1D412 => array(0x73), 0x1D413 => array(0x74), 0x1D414 => array(0x75),
1417
+					0x1D415 => array(0x76), 0x1D416 => array(0x77), 0x1D417 => array(0x78),
1418
+					0x1D418 => array(0x79), 0x1D419 => array(0x7A), 0x1D434 => array(0x61),
1419
+					0x1D435 => array(0x62), 0x1D436 => array(0x63), 0x1D437 => array(0x64),
1420
+					0x1D438 => array(0x65), 0x1D439 => array(0x66), 0x1D43A => array(0x67),
1421
+					0x1D43B => array(0x68), 0x1D43C => array(0x69), 0x1D43D => array(0x6A),
1422
+					0x1D43E => array(0x6B), 0x1D43F => array(0x6C), 0x1D440 => array(0x6D),
1423
+					0x1D441 => array(0x6E), 0x1D442 => array(0x6F), 0x1D443 => array(0x70),
1424
+					0x1D444 => array(0x71), 0x1D445 => array(0x72), 0x1D446 => array(0x73),
1425
+					0x1D447 => array(0x74), 0x1D448 => array(0x75), 0x1D449 => array(0x76),
1426
+					0x1D44A => array(0x77), 0x1D44B => array(0x78), 0x1D44C => array(0x79),
1427
+					0x1D44D => array(0x7A), 0x1D468 => array(0x61), 0x1D469 => array(0x62),
1428
+					0x1D46A => array(0x63), 0x1D46B => array(0x64), 0x1D46C => array(0x65),
1429
+					0x1D46D => array(0x66), 0x1D46E => array(0x67), 0x1D46F => array(0x68),
1430
+					0x1D470 => array(0x69), 0x1D471 => array(0x6A), 0x1D472 => array(0x6B),
1431
+					0x1D473 => array(0x6C), 0x1D474 => array(0x6D), 0x1D475 => array(0x6E),
1432
+					0x1D476 => array(0x6F), 0x1D477 => array(0x70), 0x1D478 => array(0x71),
1433
+					0x1D479 => array(0x72), 0x1D47A => array(0x73), 0x1D47B => array(0x74),
1434
+					0x1D47C => array(0x75), 0x1D47D => array(0x76), 0x1D47E => array(0x77),
1435
+					0x1D47F => array(0x78), 0x1D480 => array(0x79), 0x1D481 => array(0x7A),
1436
+					0x1D49C => array(0x61), 0x1D49E => array(0x63), 0x1D49F => array(0x64),
1437
+					0x1D4A2 => array(0x67), 0x1D4A5 => array(0x6A), 0x1D4A6 => array(0x6B),
1438
+					0x1D4A9 => array(0x6E), 0x1D4AA => array(0x6F), 0x1D4AB => array(0x70),
1439
+					0x1D4AC => array(0x71), 0x1D4AE => array(0x73), 0x1D4AF => array(0x74),
1440
+					0x1D4B0 => array(0x75), 0x1D4B1 => array(0x76), 0x1D4B2 => array(0x77),
1441
+					0x1D4B3 => array(0x78), 0x1D4B4 => array(0x79), 0x1D4B5 => array(0x7A),
1442
+					0x1D4D0 => array(0x61), 0x1D4D1 => array(0x62), 0x1D4D2 => array(0x63),
1443
+					0x1D4D3 => array(0x64), 0x1D4D4 => array(0x65), 0x1D4D5 => array(0x66),
1444
+					0x1D4D6 => array(0x67), 0x1D4D7 => array(0x68), 0x1D4D8 => array(0x69),
1445
+					0x1D4D9 => array(0x6A), 0x1D4DA => array(0x6B), 0x1D4DB => array(0x6C),
1446
+					0x1D4DC => array(0x6D), 0x1D4DD => array(0x6E), 0x1D4DE => array(0x6F),
1447
+					0x1D4DF => array(0x70), 0x1D4E0 => array(0x71), 0x1D4E1 => array(0x72),
1448
+					0x1D4E2 => array(0x73), 0x1D4E3 => array(0x74), 0x1D4E4 => array(0x75),
1449
+					0x1D4E5 => array(0x76), 0x1D4E6 => array(0x77), 0x1D4E7 => array(0x78),
1450
+					0x1D4E8 => array(0x79), 0x1D4E9 => array(0x7A), 0x1D504 => array(0x61),
1451
+					0x1D505 => array(0x62), 0x1D507 => array(0x64), 0x1D508 => array(0x65),
1452
+					0x1D509 => array(0x66), 0x1D50A => array(0x67), 0x1D50D => array(0x6A),
1453
+					0x1D50E => array(0x6B), 0x1D50F => array(0x6C), 0x1D510 => array(0x6D),
1454
+					0x1D511 => array(0x6E), 0x1D512 => array(0x6F), 0x1D513 => array(0x70),
1455
+					0x1D514 => array(0x71), 0x1D516 => array(0x73), 0x1D517 => array(0x74),
1456
+					0x1D518 => array(0x75), 0x1D519 => array(0x76), 0x1D51A => array(0x77),
1457
+					0x1D51B => array(0x78), 0x1D51C => array(0x79), 0x1D538 => array(0x61),
1458
+					0x1D539 => array(0x62), 0x1D53B => array(0x64), 0x1D53C => array(0x65),
1459
+					0x1D53D => array(0x66), 0x1D53E => array(0x67), 0x1D540 => array(0x69),
1460
+					0x1D541 => array(0x6A), 0x1D542 => array(0x6B), 0x1D543 => array(0x6C),
1461
+					0x1D544 => array(0x6D), 0x1D546 => array(0x6F), 0x1D54A => array(0x73),
1462
+					0x1D54B => array(0x74), 0x1D54C => array(0x75), 0x1D54D => array(0x76),
1463
+					0x1D54E => array(0x77), 0x1D54F => array(0x78), 0x1D550 => array(0x79),
1464
+					0x1D56C => array(0x61), 0x1D56D => array(0x62), 0x1D56E => array(0x63),
1465
+					0x1D56F => array(0x64), 0x1D570 => array(0x65), 0x1D571 => array(0x66),
1466
+					0x1D572 => array(0x67), 0x1D573 => array(0x68), 0x1D574 => array(0x69),
1467
+					0x1D575 => array(0x6A), 0x1D576 => array(0x6B), 0x1D577 => array(0x6C),
1468
+					0x1D578 => array(0x6D), 0x1D579 => array(0x6E), 0x1D57A => array(0x6F),
1469
+					0x1D57B => array(0x70), 0x1D57C => array(0x71), 0x1D57D => array(0x72),
1470
+					0x1D57E => array(0x73), 0x1D57F => array(0x74), 0x1D580 => array(0x75),
1471
+					0x1D581 => array(0x76), 0x1D582 => array(0x77), 0x1D583 => array(0x78),
1472
+					0x1D584 => array(0x79), 0x1D585 => array(0x7A), 0x1D5A0 => array(0x61),
1473
+					0x1D5A1 => array(0x62), 0x1D5A2 => array(0x63), 0x1D5A3 => array(0x64),
1474
+					0x1D5A4 => array(0x65), 0x1D5A5 => array(0x66), 0x1D5A6 => array(0x67),
1475
+					0x1D5A7 => array(0x68), 0x1D5A8 => array(0x69), 0x1D5A9 => array(0x6A),
1476
+					0x1D5AA => array(0x6B), 0x1D5AB => array(0x6C), 0x1D5AC => array(0x6D),
1477
+					0x1D5AD => array(0x6E), 0x1D5AE => array(0x6F), 0x1D5AF => array(0x70),
1478
+					0x1D5B0 => array(0x71), 0x1D5B1 => array(0x72), 0x1D5B2 => array(0x73),
1479
+					0x1D5B3 => array(0x74), 0x1D5B4 => array(0x75), 0x1D5B5 => array(0x76),
1480
+					0x1D5B6 => array(0x77), 0x1D5B7 => array(0x78), 0x1D5B8 => array(0x79),
1481
+					0x1D5B9 => array(0x7A), 0x1D5D4 => array(0x61), 0x1D5D5 => array(0x62),
1482
+					0x1D5D6 => array(0x63), 0x1D5D7 => array(0x64), 0x1D5D8 => array(0x65),
1483
+					0x1D5D9 => array(0x66), 0x1D5DA => array(0x67), 0x1D5DB => array(0x68),
1484
+					0x1D5DC => array(0x69), 0x1D5DD => array(0x6A), 0x1D5DE => array(0x6B),
1485
+					0x1D5DF => array(0x6C), 0x1D5E0 => array(0x6D), 0x1D5E1 => array(0x6E),
1486
+					0x1D5E2 => array(0x6F), 0x1D5E3 => array(0x70), 0x1D5E4 => array(0x71),
1487
+					0x1D5E5 => array(0x72), 0x1D5E6 => array(0x73), 0x1D5E7 => array(0x74),
1488
+					0x1D5E8 => array(0x75), 0x1D5E9 => array(0x76), 0x1D5EA => array(0x77),
1489
+					0x1D5EB => array(0x78), 0x1D5EC => array(0x79), 0x1D5ED => array(0x7A),
1490
+					0x1D608 => array(0x61), 0x1D609 => array(0x62), 0x1D60A => array(0x63),
1491
+					0x1D60B => array(0x64), 0x1D60C => array(0x65), 0x1D60D => array(0x66),
1492
+					0x1D60E => array(0x67), 0x1D60F => array(0x68), 0x1D610 => array(0x69),
1493
+					0x1D611 => array(0x6A), 0x1D612 => array(0x6B), 0x1D613 => array(0x6C),
1494
+					0x1D614 => array(0x6D), 0x1D615 => array(0x6E), 0x1D616 => array(0x6F),
1495
+					0x1D617 => array(0x70), 0x1D618 => array(0x71), 0x1D619 => array(0x72),
1496
+					0x1D61A => array(0x73), 0x1D61B => array(0x74), 0x1D61C => array(0x75),
1497
+					0x1D61D => array(0x76), 0x1D61E => array(0x77), 0x1D61F => array(0x78),
1498
+					0x1D620 => array(0x79), 0x1D621 => array(0x7A), 0x1D63C => array(0x61),
1499
+					0x1D63D => array(0x62), 0x1D63E => array(0x63), 0x1D63F => array(0x64),
1500
+					0x1D640 => array(0x65), 0x1D641 => array(0x66), 0x1D642 => array(0x67),
1501
+					0x1D643 => array(0x68), 0x1D644 => array(0x69), 0x1D645 => array(0x6A),
1502
+					0x1D646 => array(0x6B), 0x1D647 => array(0x6C), 0x1D648 => array(0x6D),
1503
+					0x1D649 => array(0x6E), 0x1D64A => array(0x6F), 0x1D64B => array(0x70),
1504
+					0x1D64C => array(0x71), 0x1D64D => array(0x72), 0x1D64E => array(0x73),
1505
+					0x1D64F => array(0x74), 0x1D650 => array(0x75), 0x1D651 => array(0x76),
1506
+					0x1D652 => array(0x77), 0x1D653 => array(0x78), 0x1D654 => array(0x79),
1507
+					0x1D655 => array(0x7A), 0x1D670 => array(0x61), 0x1D671 => array(0x62),
1508
+					0x1D672 => array(0x63), 0x1D673 => array(0x64), 0x1D674 => array(0x65),
1509
+					0x1D675 => array(0x66), 0x1D676 => array(0x67), 0x1D677 => array(0x68),
1510
+					0x1D678 => array(0x69), 0x1D679 => array(0x6A), 0x1D67A => array(0x6B),
1511
+					0x1D67B => array(0x6C), 0x1D67C => array(0x6D), 0x1D67D => array(0x6E),
1512
+					0x1D67E => array(0x6F), 0x1D67F => array(0x70), 0x1D680 => array(0x71),
1513
+					0x1D681 => array(0x72), 0x1D682 => array(0x73), 0x1D683 => array(0x74),
1514
+					0x1D684 => array(0x75), 0x1D685 => array(0x76), 0x1D686 => array(0x77),
1515
+					0x1D687 => array(0x78), 0x1D688 => array(0x79), 0x1D689 => array(0x7A),
1516
+					0x1D6A8 => array(0x3B1), 0x1D6A9 => array(0x3B2), 0x1D6AA => array(0x3B3),
1517
+					0x1D6AB => array(0x3B4), 0x1D6AC => array(0x3B5), 0x1D6AD => array(0x3B6),
1518
+					0x1D6AE => array(0x3B7), 0x1D6AF => array(0x3B8), 0x1D6B0 => array(0x3B9),
1519
+					0x1D6B1 => array(0x3BA), 0x1D6B2 => array(0x3BB), 0x1D6B3 => array(0x3BC),
1520
+					0x1D6B4 => array(0x3BD), 0x1D6B5 => array(0x3BE), 0x1D6B6 => array(0x3BF),
1521
+					0x1D6B7 => array(0x3C0), 0x1D6B8 => array(0x3C1), 0x1D6B9 => array(0x3B8),
1522
+					0x1D6BA => array(0x3C3), 0x1D6BB => array(0x3C4), 0x1D6BC => array(0x3C5),
1523
+					0x1D6BD => array(0x3C6), 0x1D6BE => array(0x3C7), 0x1D6BF => array(0x3C8),
1524
+					0x1D6C0 => array(0x3C9), 0x1D6D3 => array(0x3C3), 0x1D6E2 => array(0x3B1),
1525
+					0x1D6E3 => array(0x3B2), 0x1D6E4 => array(0x3B3), 0x1D6E5 => array(0x3B4),
1526
+					0x1D6E6 => array(0x3B5), 0x1D6E7 => array(0x3B6), 0x1D6E8 => array(0x3B7),
1527
+					0x1D6E9 => array(0x3B8), 0x1D6EA => array(0x3B9), 0x1D6EB => array(0x3BA),
1528
+					0x1D6EC => array(0x3BB), 0x1D6ED => array(0x3BC), 0x1D6EE => array(0x3BD),
1529
+					0x1D6EF => array(0x3BE), 0x1D6F0 => array(0x3BF), 0x1D6F1 => array(0x3C0),
1530
+					0x1D6F2 => array(0x3C1), 0x1D6F3 => array(0x3B8), 0x1D6F4 => array(0x3C3),
1531
+					0x1D6F5 => array(0x3C4), 0x1D6F6 => array(0x3C5), 0x1D6F7 => array(0x3C6),
1532
+					0x1D6F8 => array(0x3C7), 0x1D6F9 => array(0x3C8), 0x1D6FA => array(0x3C9),
1533
+					0x1D70D => array(0x3C3), 0x1D71C => array(0x3B1), 0x1D71D => array(0x3B2),
1534
+					0x1D71E => array(0x3B3), 0x1D71F => array(0x3B4), 0x1D720 => array(0x3B5),
1535
+					0x1D721 => array(0x3B6), 0x1D722 => array(0x3B7), 0x1D723 => array(0x3B8),
1536
+					0x1D724 => array(0x3B9), 0x1D725 => array(0x3BA), 0x1D726 => array(0x3BB),
1537
+					0x1D727 => array(0x3BC), 0x1D728 => array(0x3BD), 0x1D729 => array(0x3BE),
1538
+					0x1D72A => array(0x3BF), 0x1D72B => array(0x3C0), 0x1D72C => array(0x3C1),
1539
+					0x1D72D => array(0x3B8), 0x1D72E => array(0x3C3), 0x1D72F => array(0x3C4),
1540
+					0x1D730 => array(0x3C5), 0x1D731 => array(0x3C6), 0x1D732 => array(0x3C7),
1541
+					0x1D733 => array(0x3C8), 0x1D734 => array(0x3C9), 0x1D747 => array(0x3C3),
1542
+					0x1D756 => array(0x3B1), 0x1D757 => array(0x3B2), 0x1D758 => array(0x3B3),
1543
+					0x1D759 => array(0x3B4), 0x1D75A => array(0x3B5), 0x1D75B => array(0x3B6),
1544
+					0x1D75C => array(0x3B7), 0x1D75D => array(0x3B8), 0x1D75E => array(0x3B9),
1545
+					0x1D75F => array(0x3BA), 0x1D760 => array(0x3BB), 0x1D761 => array(0x3BC),
1546
+					0x1D762 => array(0x3BD), 0x1D763 => array(0x3BE), 0x1D764 => array(0x3BF),
1547
+					0x1D765 => array(0x3C0), 0x1D766 => array(0x3C1), 0x1D767 => array(0x3B8),
1548
+					0x1D768 => array(0x3C3), 0x1D769 => array(0x3C4), 0x1D76A => array(0x3C5),
1549
+					0x1D76B => array(0x3C6), 0x1D76C => array(0x3C7), 0x1D76D => array(0x3C8),
1550
+					0x1D76E => array(0x3C9), 0x1D781 => array(0x3C3), 0x1D790 => array(0x3B1),
1551
+					0x1D791 => array(0x3B2), 0x1D792 => array(0x3B3), 0x1D793 => array(0x3B4),
1552
+					0x1D794 => array(0x3B5), 0x1D795 => array(0x3B6), 0x1D796 => array(0x3B7),
1553
+					0x1D797 => array(0x3B8), 0x1D798 => array(0x3B9), 0x1D799 => array(0x3BA),
1554
+					0x1D79A => array(0x3BB), 0x1D79B => array(0x3BC), 0x1D79C => array(0x3BD),
1555
+					0x1D79D => array(0x3BE), 0x1D79E => array(0x3BF), 0x1D79F => array(0x3C0),
1556
+					0x1D7A0 => array(0x3C1), 0x1D7A1 => array(0x3B8), 0x1D7A2 => array(0x3C3),
1557
+					0x1D7A3 => array(0x3C4), 0x1D7A4 => array(0x3C5), 0x1D7A5 => array(0x3C6),
1558
+					0x1D7A6 => array(0x3C7), 0x1D7A7 => array(0x3C8), 0x1D7A8 => array(0x3C9),
1559
+					0x1D7BB => array(0x3C3), 0x3F9 => array(0x3C3), 0x1D2C => array(0x61),
1560
+					0x1D2D => array(0xE6), 0x1D2E => array(0x62), 0x1D30 => array(0x64),
1561
+					0x1D31 => array(0x65), 0x1D32 => array(0x1DD), 0x1D33 => array(0x67),
1562
+					0x1D34 => array(0x68), 0x1D35 => array(0x69), 0x1D36 => array(0x6A),
1563
+					0x1D37 => array(0x6B), 0x1D38 => array(0x6C), 0x1D39 => array(0x6D),
1564
+					0x1D3A => array(0x6E), 0x1D3C => array(0x6F), 0x1D3D => array(0x223),
1565
+					0x1D3E => array(0x70), 0x1D3F => array(0x72), 0x1D40 => array(0x74),
1566
+					0x1D41 => array(0x75), 0x1D42 => array(0x77), 0x213B => array(0x66, 0x61, 0x78),
1567
+					0x3250 => array(0x70, 0x74, 0x65), 0x32CC => array(0x68, 0x67),
1568
+					0x32CE => array(0x65, 0x76), 0x32CF => array(0x6C, 0x74, 0x64),
1569
+					0x337A => array(0x69, 0x75), 0x33DE => array(0x76, 0x2215, 0x6D),
1570
+					0x33DF => array(0x61, 0x2215, 0x6D)
1571
+			),
1572
+			'replacemaps' => array(0x41 => array(0x61), 0x42 => array(0x62), 0x43 => array(0x63),
1573
+					0x44 => array(0x64), 0x45 => array(0x65), 0x46 => array(0x66),
1574
+					0x47 => array(0x67), 0x48 => array(0x68), 0x49 => array(0x69),
1575
+					0x4A => array(0x6A), 0x4B => array(0x6B), 0x4C => array(0x6C),
1576
+					0x4D => array(0x6D), 0x4E => array(0x6E), 0x4F => array(0x6F),
1577
+					0x50 => array(0x70), 0x51 => array(0x71), 0x52 => array(0x72),
1578
+					0x53 => array(0x73), 0x54 => array(0x74), 0x55 => array(0x75),
1579
+					0x56 => array(0x76), 0x57 => array(0x77), 0x58 => array(0x78),
1580
+					0x59 => array(0x79), 0x5A => array(0x7A), 0xAA => array(0x61),
1581
+					0xB2 => array(0x32), 0xB3 => array(0x33), 0xB5 => array(0x3BC),
1582
+					0xB9 => array(0x31), 0xBA => array(0x6F), 0xBC => array(0x31, 0x2044, 0x34),
1583
+					0xBD => array(0x31, 0x2044, 0x32), 0xBE => array(0x33, 0x2044, 0x34), 0xC0 => array(0xE0),
1584
+					0xC1 => array(0xE1), 0xC2 => array(0xE2), 0xC3 => array(0xE3),
1585
+					0xC4 => array(0xE4), 0xC5 => array(0xE5), 0xC6 => array(0xE6),
1586
+					0xC7 => array(0xE7), 0xC8 => array(0xE8), 0xC9 => array(0xE9),
1587
+					0xCA => array(0xEA), 0xCB => array(0xEB), 0xCC => array(0xEC),
1588
+					0xCD => array(0xED), 0xCE => array(0xEE), 0xCF => array(0xEF),
1589
+					0xD0 => array(0xF0), 0xD1 => array(0xF1), 0xD2 => array(0xF2),
1590
+					0xD3 => array(0xF3), 0xD4 => array(0xF4), 0xD5 => array(0xF5),
1591
+					0xD6 => array(0xF6), 0xD8 => array(0xF8), 0xD9 => array(0xF9),
1592
+					0xDA => array(0xFA), 0xDB => array(0xFB), 0xDC => array(0xFC),
1593
+					0xDD => array(0xFD), 0xDE => array(0xFE), 0x100 => array(0x101),
1594
+					0x102 => array(0x103), 0x104 => array(0x105), 0x106 => array(0x107),
1595
+					0x108 => array(0x109), 0x10A => array(0x10B), 0x10C => array(0x10D),
1596
+					0x10E => array(0x10F), 0x110 => array(0x111), 0x112 => array(0x113),
1597
+					0x114 => array(0x115), 0x116 => array(0x117), 0x118 => array(0x119),
1598
+					0x11A => array(0x11B), 0x11C => array(0x11D), 0x11E => array(0x11F),
1599
+					0x120 => array(0x121), 0x122 => array(0x123), 0x124 => array(0x125),
1600
+					0x126 => array(0x127), 0x128 => array(0x129), 0x12A => array(0x12B),
1601
+					0x12C => array(0x12D), 0x12E => array(0x12F), 0x130 => array(0x69, 0x307),
1602
+					0x132 => array(0x69, 0x6A), 0x133 => array(0x69, 0x6A), 0x134 => array(0x135),
1603
+					0x136 => array(0x137), 0x139 => array(0x13A), 0x13B => array(0x13C),
1604
+					0x13D => array(0x13E), 0x13F => array(0x6C, 0xB7), 0x140 => array(0x6C, 0xB7),
1605
+					0x141 => array(0x142), 0x143 => array(0x144), 0x145 => array(0x146),
1606
+					0x147 => array(0x148), 0x149 => array(0x2BC, 0x6E), 0x14A => array(0x14B),
1607
+					0x14C => array(0x14D), 0x14E => array(0x14F), 0x150 => array(0x151),
1608
+					0x152 => array(0x153), 0x154 => array(0x155), 0x156 => array(0x157),
1609
+					0x158 => array(0x159), 0x15A => array(0x15B), 0x15C => array(0x15D),
1610
+					0x15E => array(0x15F), 0x160 => array(0x161), 0x162 => array(0x163),
1611
+					0x164 => array(0x165), 0x166 => array(0x167), 0x168 => array(0x169),
1612
+					0x16A => array(0x16B), 0x16C => array(0x16D), 0x16E => array(0x16F),
1613
+					0x170 => array(0x171), 0x172 => array(0x173), 0x174 => array(0x175),
1614
+					0x176 => array(0x177), 0x178 => array(0xFF), 0x179 => array(0x17A),
1615
+					0x17B => array(0x17C), 0x17D => array(0x17E), 0x17F => array(0x73),
1616
+					0x181 => array(0x253), 0x182 => array(0x183), 0x184 => array(0x185),
1617
+					0x186 => array(0x254), 0x187 => array(0x188), 0x189 => array(0x256),
1618
+					0x18A => array(0x257), 0x18B => array(0x18C), 0x18E => array(0x1DD),
1619
+					0x18F => array(0x259), 0x190 => array(0x25B), 0x191 => array(0x192),
1620
+					0x193 => array(0x260), 0x194 => array(0x263), 0x196 => array(0x269),
1621
+					0x197 => array(0x268), 0x198 => array(0x199), 0x19C => array(0x26F),
1622
+					0x19D => array(0x272), 0x19F => array(0x275), 0x1A0 => array(0x1A1),
1623
+					0x1A2 => array(0x1A3), 0x1A4 => array(0x1A5), 0x1A6 => array(0x280),
1624
+					0x1A7 => array(0x1A8), 0x1A9 => array(0x283), 0x1AC => array(0x1AD),
1625
+					0x1AE => array(0x288), 0x1AF => array(0x1B0), 0x1B1 => array(0x28A),
1626
+					0x1B2 => array(0x28B), 0x1B3 => array(0x1B4), 0x1B5 => array(0x1B6),
1627
+					0x1B7 => array(0x292), 0x1B8 => array(0x1B9), 0x1BC => array(0x1BD),
1628
+					0x1C4 => array(0x64, 0x17E), 0x1C5 => array(0x64, 0x17E), 0x1C6 => array(0x64, 0x17E),
1629
+					0x1C7 => array(0x6C, 0x6A), 0x1C8 => array(0x6C, 0x6A), 0x1C9 => array(0x6C, 0x6A),
1630
+					0x1CA => array(0x6E, 0x6A), 0x1CB => array(0x6E, 0x6A), 0x1CC => array(0x6E, 0x6A),
1631
+					0x1CD => array(0x1CE), 0x1CF => array(0x1D0), 0x1D1 => array(0x1D2),
1632
+					0x1D3 => array(0x1D4), 0x1D5 => array(0x1D6), 0x1D7 => array(0x1D8),
1633
+					0x1D9 => array(0x1DA), 0x1DB => array(0x1DC), 0x1DE => array(0x1DF),
1634
+					0x1E0 => array(0x1E1), 0x1E2 => array(0x1E3), 0x1E4 => array(0x1E5),
1635
+					0x1E6 => array(0x1E7), 0x1E8 => array(0x1E9), 0x1EA => array(0x1EB),
1636
+					0x1EC => array(0x1ED), 0x1EE => array(0x1EF), 0x1F1 => array(0x64, 0x7A),
1637
+					0x1F2 => array(0x64, 0x7A), 0x1F3 => array(0x64, 0x7A), 0x1F4 => array(0x1F5),
1638
+					0x1F6 => array(0x195), 0x1F7 => array(0x1BF), 0x1F8 => array(0x1F9),
1639
+					0x1FA => array(0x1FB), 0x1FC => array(0x1FD), 0x1FE => array(0x1FF),
1640
+					0x200 => array(0x201), 0x202 => array(0x203), 0x204 => array(0x205),
1641
+					0x206 => array(0x207), 0x208 => array(0x209), 0x20A => array(0x20B),
1642
+					0x20C => array(0x20D), 0x20E => array(0x20F), 0x210 => array(0x211),
1643
+					0x212 => array(0x213), 0x214 => array(0x215), 0x216 => array(0x217),
1644
+					0x218 => array(0x219), 0x21A => array(0x21B), 0x21C => array(0x21D),
1645
+					0x21E => array(0x21F), 0x220 => array(0x19E), 0x222 => array(0x223),
1646
+					0x224 => array(0x225), 0x226 => array(0x227), 0x228 => array(0x229),
1647
+					0x22A => array(0x22B), 0x22C => array(0x22D), 0x22E => array(0x22F),
1648
+					0x230 => array(0x231), 0x232 => array(0x233), 0x23A => array(0x2C65),
1649
+					0x23B => array(0x23C), 0x23D => array(0x19A), 0x23E => array(0x2C66),
1650
+					0x241 => array(0x242), 0x243 => array(0x180), 0x244 => array(0x289),
1651
+					0x245 => array(0x28C), 0x246 => array(0x247), 0x248 => array(0x249),
1652
+					0x24A => array(0x24B), 0x24C => array(0x24D), 0x24E => array(0x24F),
1653
+					0x2B0 => array(0x68), 0x2B1 => array(0x266), 0x2B2 => array(0x6A),
1654
+					0x2B3 => array(0x72), 0x2B4 => array(0x279), 0x2B5 => array(0x27B),
1655
+					0x2B6 => array(0x281), 0x2B7 => array(0x77), 0x2B8 => array(0x79),
1656
+					0x2E0 => array(0x263), 0x2E1 => array(0x6C), 0x2E2 => array(0x73),
1657
+					0x2E3 => array(0x78), 0x2E4 => array(0x295), 0x340 => array(0x300),
1658
+					0x341 => array(0x301), 0x343 => array(0x313), 0x344 => array(0x308, 0x301),
1659
+					0x345 => array(0x3B9), 0x370 => array(0x371), 0x372 => array(0x373),
1660
+					0x374 => array(0x2B9), 0x376 => array(0x377), 0x37F => array(0x3F3),
1661
+					0x386 => array(0x3AC), 0x387 => array(0xB7), 0x388 => array(0x3AD),
1662
+					0x389 => array(0x3AE), 0x38A => array(0x3AF), 0x38C => array(0x3CC),
1663
+					0x38E => array(0x3CD), 0x38F => array(0x3CE), 0x391 => array(0x3B1),
1664
+					0x392 => array(0x3B2), 0x393 => array(0x3B3), 0x394 => array(0x3B4),
1665
+					0x395 => array(0x3B5), 0x396 => array(0x3B6), 0x397 => array(0x3B7),
1666
+					0x398 => array(0x3B8), 0x399 => array(0x3B9), 0x39A => array(0x3BA),
1667
+					0x39B => array(0x3BB), 0x39C => array(0x3BC), 0x39D => array(0x3BD),
1668
+					0x39E => array(0x3BE), 0x39F => array(0x3BF), 0x3A0 => array(0x3C0),
1669
+					0x3A1 => array(0x3C1), 0x3A3 => array(0x3C3), 0x3A4 => array(0x3C4),
1670
+					0x3A5 => array(0x3C5), 0x3A6 => array(0x3C6), 0x3A7 => array(0x3C7),
1671
+					0x3A8 => array(0x3C8), 0x3A9 => array(0x3C9), 0x3AA => array(0x3CA),
1672
+					0x3AB => array(0x3CB), 0x3CF => array(0x3D7), 0x3D0 => array(0x3B2),
1673
+					0x3D1 => array(0x3B8), 0x3D2 => array(0x3C5), 0x3D3 => array(0x3CD),
1674
+					0x3D4 => array(0x3CB), 0x3D5 => array(0x3C6), 0x3D6 => array(0x3C0),
1675
+					0x3D8 => array(0x3D9), 0x3DA => array(0x3DB), 0x3DC => array(0x3DD),
1676
+					0x3DE => array(0x3DF), 0x3E0 => array(0x3E1), 0x3E2 => array(0x3E3),
1677
+					0x3E4 => array(0x3E5), 0x3E6 => array(0x3E7), 0x3E8 => array(0x3E9),
1678
+					0x3EA => array(0x3EB), 0x3EC => array(0x3ED), 0x3EE => array(0x3EF),
1679
+					0x3F0 => array(0x3BA), 0x3F1 => array(0x3C1), 0x3F2 => array(0x3C3),
1680
+					0x3F4 => array(0x3B8), 0x3F5 => array(0x3B5), 0x3F7 => array(0x3F8),
1681
+					0x3F9 => array(0x3C3), 0x3FA => array(0x3FB), 0x3FD => array(0x37B),
1682
+					0x3FE => array(0x37C), 0x3FF => array(0x37D), 0x400 => array(0x450),
1683
+					0x401 => array(0x451), 0x402 => array(0x452), 0x403 => array(0x453),
1684
+					0x404 => array(0x454), 0x405 => array(0x455), 0x406 => array(0x456),
1685
+					0x407 => array(0x457), 0x408 => array(0x458), 0x409 => array(0x459),
1686
+					0x40A => array(0x45A), 0x40B => array(0x45B), 0x40C => array(0x45C),
1687
+					0x40D => array(0x45D), 0x40E => array(0x45E), 0x40F => array(0x45F),
1688
+					0x410 => array(0x430), 0x411 => array(0x431), 0x412 => array(0x432),
1689
+					0x413 => array(0x433), 0x414 => array(0x434), 0x415 => array(0x435),
1690
+					0x416 => array(0x436), 0x417 => array(0x437), 0x418 => array(0x438),
1691
+					0x419 => array(0x439), 0x41A => array(0x43A), 0x41B => array(0x43B),
1692
+					0x41C => array(0x43C), 0x41D => array(0x43D), 0x41E => array(0x43E),
1693
+					0x41F => array(0x43F), 0x420 => array(0x440), 0x421 => array(0x441),
1694
+					0x422 => array(0x442), 0x423 => array(0x443), 0x424 => array(0x444),
1695
+					0x425 => array(0x445), 0x426 => array(0x446), 0x427 => array(0x447),
1696
+					0x428 => array(0x448), 0x429 => array(0x449), 0x42A => array(0x44A),
1697
+					0x42B => array(0x44B), 0x42C => array(0x44C), 0x42D => array(0x44D),
1698
+					0x42E => array(0x44E), 0x42F => array(0x44F), 0x460 => array(0x461),
1699
+					0x462 => array(0x463), 0x464 => array(0x465), 0x466 => array(0x467),
1700
+					0x468 => array(0x469), 0x46A => array(0x46B), 0x46C => array(0x46D),
1701
+					0x46E => array(0x46F), 0x470 => array(0x471), 0x472 => array(0x473),
1702
+					0x474 => array(0x475), 0x476 => array(0x477), 0x478 => array(0x479),
1703
+					0x47A => array(0x47B), 0x47C => array(0x47D), 0x47E => array(0x47F),
1704
+					0x480 => array(0x481), 0x48A => array(0x48B), 0x48C => array(0x48D),
1705
+					0x48E => array(0x48F), 0x490 => array(0x491), 0x492 => array(0x493),
1706
+					0x494 => array(0x495), 0x496 => array(0x497), 0x498 => array(0x499),
1707
+					0x49A => array(0x49B), 0x49C => array(0x49D), 0x49E => array(0x49F),
1708
+					0x4A0 => array(0x4A1), 0x4A2 => array(0x4A3), 0x4A4 => array(0x4A5),
1709
+					0x4A6 => array(0x4A7), 0x4A8 => array(0x4A9), 0x4AA => array(0x4AB),
1710
+					0x4AC => array(0x4AD), 0x4AE => array(0x4AF), 0x4B0 => array(0x4B1),
1711
+					0x4B2 => array(0x4B3), 0x4B4 => array(0x4B5), 0x4B6 => array(0x4B7),
1712
+					0x4B8 => array(0x4B9), 0x4BA => array(0x4BB), 0x4BC => array(0x4BD),
1713
+					0x4BE => array(0x4BF), 0x4C1 => array(0x4C2), 0x4C3 => array(0x4C4),
1714
+					0x4C5 => array(0x4C6), 0x4C7 => array(0x4C8), 0x4C9 => array(0x4CA),
1715
+					0x4CB => array(0x4CC), 0x4CD => array(0x4CE), 0x4D0 => array(0x4D1),
1716
+					0x4D2 => array(0x4D3), 0x4D4 => array(0x4D5), 0x4D6 => array(0x4D7),
1717
+					0x4D8 => array(0x4D9), 0x4DA => array(0x4DB), 0x4DC => array(0x4DD),
1718
+					0x4DE => array(0x4DF), 0x4E0 => array(0x4E1), 0x4E2 => array(0x4E3),
1719
+					0x4E4 => array(0x4E5), 0x4E6 => array(0x4E7), 0x4E8 => array(0x4E9),
1720
+					0x4EA => array(0x4EB), 0x4EC => array(0x4ED), 0x4EE => array(0x4EF),
1721
+					0x4F0 => array(0x4F1), 0x4F2 => array(0x4F3), 0x4F4 => array(0x4F5),
1722
+					0x4F6 => array(0x4F7), 0x4F8 => array(0x4F9), 0x4FA => array(0x4FB),
1723
+					0x4FC => array(0x4FD), 0x4FE => array(0x4FF), 0x500 => array(0x501),
1724
+					0x502 => array(0x503), 0x504 => array(0x505), 0x506 => array(0x507),
1725
+					0x508 => array(0x509), 0x50A => array(0x50B), 0x50C => array(0x50D),
1726
+					0x50E => array(0x50F), 0x510 => array(0x511), 0x512 => array(0x513),
1727
+					0x514 => array(0x515), 0x516 => array(0x517), 0x518 => array(0x519),
1728
+					0x51A => array(0x51B), 0x51C => array(0x51D), 0x51E => array(0x51F),
1729
+					0x520 => array(0x521), 0x522 => array(0x523), 0x524 => array(0x525),
1730
+					0x526 => array(0x527), 0x528 => array(0x529), 0x52A => array(0x52B),
1731
+					0x52C => array(0x52D), 0x52E => array(0x52F), 0x531 => array(0x561),
1732
+					0x532 => array(0x562), 0x533 => array(0x563), 0x534 => array(0x564),
1733
+					0x535 => array(0x565), 0x536 => array(0x566), 0x537 => array(0x567),
1734
+					0x538 => array(0x568), 0x539 => array(0x569), 0x53A => array(0x56A),
1735
+					0x53B => array(0x56B), 0x53C => array(0x56C), 0x53D => array(0x56D),
1736
+					0x53E => array(0x56E), 0x53F => array(0x56F), 0x540 => array(0x570),
1737
+					0x541 => array(0x571), 0x542 => array(0x572), 0x543 => array(0x573),
1738
+					0x544 => array(0x574), 0x545 => array(0x575), 0x546 => array(0x576),
1739
+					0x547 => array(0x577), 0x548 => array(0x578), 0x549 => array(0x579),
1740
+					0x54A => array(0x57A), 0x54B => array(0x57B), 0x54C => array(0x57C),
1741
+					0x54D => array(0x57D), 0x54E => array(0x57E), 0x54F => array(0x57F),
1742
+					0x550 => array(0x580), 0x551 => array(0x581), 0x552 => array(0x582),
1743
+					0x553 => array(0x583), 0x554 => array(0x584), 0x555 => array(0x585),
1744
+					0x556 => array(0x586), 0x587 => array(0x565, 0x582), 0x675 => array(0x627, 0x674),
1745
+					0x676 => array(0x648, 0x674), 0x677 => array(0x6C7, 0x674), 0x678 => array(0x64A, 0x674),
1746
+					0x958 => array(0x915, 0x93C), 0x959 => array(0x916, 0x93C), 0x95A => array(0x917, 0x93C),
1747
+					0x95B => array(0x91C, 0x93C), 0x95C => array(0x921, 0x93C), 0x95D => array(0x922, 0x93C),
1748
+					0x95E => array(0x92B, 0x93C), 0x95F => array(0x92F, 0x93C), 0x9DC => array(0x9A1, 0x9BC),
1749
+					0x9DD => array(0x9A2, 0x9BC), 0x9DF => array(0x9AF, 0x9BC), 0xA33 => array(0xA32, 0xA3C),
1750
+					0xA36 => array(0xA38, 0xA3C), 0xA59 => array(0xA16, 0xA3C), 0xA5A => array(0xA17, 0xA3C),
1751
+					0xA5B => array(0xA1C, 0xA3C), 0xA5E => array(0xA2B, 0xA3C), 0xB5C => array(0xB21, 0xB3C),
1752
+					0xB5D => array(0xB22, 0xB3C), 0xE33 => array(0xE4D, 0xE32), 0xEB3 => array(0xECD, 0xEB2),
1753
+					0xEDC => array(0xEAB, 0xE99), 0xEDD => array(0xEAB, 0xEA1), 0xF0C => array(0xF0B),
1754
+					0xF43 => array(0xF42, 0xFB7), 0xF4D => array(0xF4C, 0xFB7), 0xF52 => array(0xF51, 0xFB7),
1755
+					0xF57 => array(0xF56, 0xFB7), 0xF5C => array(0xF5B, 0xFB7), 0xF69 => array(0xF40, 0xFB5),
1756
+					0xF73 => array(0xF71, 0xF72), 0xF75 => array(0xF71, 0xF74), 0xF76 => array(0xFB2, 0xF80),
1757
+					0xF77 => array(0xFB2, 0xF71, 0xF80), 0xF78 => array(0xFB3, 0xF80), 0xF79 => array(0xFB3, 0xF71, 0xF80),
1758
+					0xF81 => array(0xF71, 0xF80), 0xF93 => array(0xF92, 0xFB7), 0xF9D => array(0xF9C, 0xFB7),
1759
+					0xFA2 => array(0xFA1, 0xFB7), 0xFA7 => array(0xFA6, 0xFB7), 0xFAC => array(0xFAB, 0xFB7),
1760
+					0xFB9 => array(0xF90, 0xFB5), 0x10C7 => array(0x2D27), 0x10CD => array(0x2D2D),
1761
+					0x10FC => array(0x10DC), 0x1D2C => array(0x61), 0x1D2D => array(0xE6),
1762
+					0x1D2E => array(0x62), 0x1D30 => array(0x64), 0x1D31 => array(0x65),
1763
+					0x1D32 => array(0x1DD), 0x1D33 => array(0x67), 0x1D34 => array(0x68),
1764
+					0x1D35 => array(0x69), 0x1D36 => array(0x6A), 0x1D37 => array(0x6B),
1765
+					0x1D38 => array(0x6C), 0x1D39 => array(0x6D), 0x1D3A => array(0x6E),
1766
+					0x1D3C => array(0x6F), 0x1D3D => array(0x223), 0x1D3E => array(0x70),
1767
+					0x1D3F => array(0x72), 0x1D40 => array(0x74), 0x1D41 => array(0x75),
1768
+					0x1D42 => array(0x77), 0x1D43 => array(0x61), 0x1D44 => array(0x250),
1769
+					0x1D45 => array(0x251), 0x1D46 => array(0x1D02), 0x1D47 => array(0x62),
1770
+					0x1D48 => array(0x64), 0x1D49 => array(0x65), 0x1D4A => array(0x259),
1771
+					0x1D4B => array(0x25B), 0x1D4C => array(0x25C), 0x1D4D => array(0x67),
1772
+					0x1D4F => array(0x6B), 0x1D50 => array(0x6D), 0x1D51 => array(0x14B),
1773
+					0x1D52 => array(0x6F), 0x1D53 => array(0x254), 0x1D54 => array(0x1D16),
1774
+					0x1D55 => array(0x1D17), 0x1D56 => array(0x70), 0x1D57 => array(0x74),
1775
+					0x1D58 => array(0x75), 0x1D59 => array(0x1D1D), 0x1D5A => array(0x26F),
1776
+					0x1D5B => array(0x76), 0x1D5C => array(0x1D25), 0x1D5D => array(0x3B2),
1777
+					0x1D5E => array(0x3B3), 0x1D5F => array(0x3B4), 0x1D60 => array(0x3C6),
1778
+					0x1D61 => array(0x3C7), 0x1D62 => array(0x69), 0x1D63 => array(0x72),
1779
+					0x1D64 => array(0x75), 0x1D65 => array(0x76), 0x1D66 => array(0x3B2),
1780
+					0x1D67 => array(0x3B3), 0x1D68 => array(0x3C1), 0x1D69 => array(0x3C6),
1781
+					0x1D6A => array(0x3C7), 0x1D78 => array(0x43D), 0x1D9B => array(0x252),
1782
+					0x1D9C => array(0x63), 0x1D9D => array(0x255), 0x1D9E => array(0xF0),
1783
+					0x1D9F => array(0x25C), 0x1DA0 => array(0x66), 0x1DA1 => array(0x25F),
1784
+					0x1DA2 => array(0x261), 0x1DA3 => array(0x265), 0x1DA4 => array(0x268),
1785
+					0x1DA5 => array(0x269), 0x1DA6 => array(0x26A), 0x1DA7 => array(0x1D7B),
1786
+					0x1DA8 => array(0x29D), 0x1DA9 => array(0x26D), 0x1DAA => array(0x1D85),
1787
+					0x1DAB => array(0x29F), 0x1DAC => array(0x271), 0x1DAD => array(0x270),
1788
+					0x1DAE => array(0x272), 0x1DAF => array(0x273), 0x1DB0 => array(0x274),
1789
+					0x1DB1 => array(0x275), 0x1DB2 => array(0x278), 0x1DB3 => array(0x282),
1790
+					0x1DB4 => array(0x283), 0x1DB5 => array(0x1AB), 0x1DB6 => array(0x289),
1791
+					0x1DB7 => array(0x28A), 0x1DB8 => array(0x1D1C), 0x1DB9 => array(0x28B),
1792
+					0x1DBA => array(0x28C), 0x1DBB => array(0x7A), 0x1DBC => array(0x290),
1793
+					0x1DBD => array(0x291), 0x1DBE => array(0x292), 0x1DBF => array(0x3B8),
1794
+					0x1E00 => array(0x1E01), 0x1E02 => array(0x1E03), 0x1E04 => array(0x1E05),
1795
+					0x1E06 => array(0x1E07), 0x1E08 => array(0x1E09), 0x1E0A => array(0x1E0B),
1796
+					0x1E0C => array(0x1E0D), 0x1E0E => array(0x1E0F), 0x1E10 => array(0x1E11),
1797
+					0x1E12 => array(0x1E13), 0x1E14 => array(0x1E15), 0x1E16 => array(0x1E17),
1798
+					0x1E18 => array(0x1E19), 0x1E1A => array(0x1E1B), 0x1E1C => array(0x1E1D),
1799
+					0x1E1E => array(0x1E1F), 0x1E20 => array(0x1E21), 0x1E22 => array(0x1E23),
1800
+					0x1E24 => array(0x1E25), 0x1E26 => array(0x1E27), 0x1E28 => array(0x1E29),
1801
+					0x1E2A => array(0x1E2B), 0x1E2C => array(0x1E2D), 0x1E2E => array(0x1E2F),
1802
+					0x1E30 => array(0x1E31), 0x1E32 => array(0x1E33), 0x1E34 => array(0x1E35),
1803
+					0x1E36 => array(0x1E37), 0x1E38 => array(0x1E39), 0x1E3A => array(0x1E3B),
1804
+					0x1E3C => array(0x1E3D), 0x1E3E => array(0x1E3F), 0x1E40 => array(0x1E41),
1805
+					0x1E42 => array(0x1E43), 0x1E44 => array(0x1E45), 0x1E46 => array(0x1E47),
1806
+					0x1E48 => array(0x1E49), 0x1E4A => array(0x1E4B), 0x1E4C => array(0x1E4D),
1807
+					0x1E4E => array(0x1E4F), 0x1E50 => array(0x1E51), 0x1E52 => array(0x1E53),
1808
+					0x1E54 => array(0x1E55), 0x1E56 => array(0x1E57), 0x1E58 => array(0x1E59),
1809
+					0x1E5A => array(0x1E5B), 0x1E5C => array(0x1E5D), 0x1E5E => array(0x1E5F),
1810
+					0x1E60 => array(0x1E61), 0x1E62 => array(0x1E63), 0x1E64 => array(0x1E65),
1811
+					0x1E66 => array(0x1E67), 0x1E68 => array(0x1E69), 0x1E6A => array(0x1E6B),
1812
+					0x1E6C => array(0x1E6D), 0x1E6E => array(0x1E6F), 0x1E70 => array(0x1E71),
1813
+					0x1E72 => array(0x1E73), 0x1E74 => array(0x1E75), 0x1E76 => array(0x1E77),
1814
+					0x1E78 => array(0x1E79), 0x1E7A => array(0x1E7B), 0x1E7C => array(0x1E7D),
1815
+					0x1E7E => array(0x1E7F), 0x1E80 => array(0x1E81), 0x1E82 => array(0x1E83),
1816
+					0x1E84 => array(0x1E85), 0x1E86 => array(0x1E87), 0x1E88 => array(0x1E89),
1817
+					0x1E8A => array(0x1E8B), 0x1E8C => array(0x1E8D), 0x1E8E => array(0x1E8F),
1818
+					0x1E90 => array(0x1E91), 0x1E92 => array(0x1E93), 0x1E94 => array(0x1E95),
1819
+					0x1E9A => array(0x61, 0x2BE), 0x1E9B => array(0x1E61), 0x1E9E => array(0x73, 0x73),
1820
+					0x1EA0 => array(0x1EA1), 0x1EA2 => array(0x1EA3), 0x1EA4 => array(0x1EA5),
1821
+					0x1EA6 => array(0x1EA7), 0x1EA8 => array(0x1EA9), 0x1EAA => array(0x1EAB),
1822
+					0x1EAC => array(0x1EAD), 0x1EAE => array(0x1EAF), 0x1EB0 => array(0x1EB1),
1823
+					0x1EB2 => array(0x1EB3), 0x1EB4 => array(0x1EB5), 0x1EB6 => array(0x1EB7),
1824
+					0x1EB8 => array(0x1EB9), 0x1EBA => array(0x1EBB), 0x1EBC => array(0x1EBD),
1825
+					0x1EBE => array(0x1EBF), 0x1EC0 => array(0x1EC1), 0x1EC2 => array(0x1EC3),
1826
+					0x1EC4 => array(0x1EC5), 0x1EC6 => array(0x1EC7), 0x1EC8 => array(0x1EC9),
1827
+					0x1ECA => array(0x1ECB), 0x1ECC => array(0x1ECD), 0x1ECE => array(0x1ECF),
1828
+					0x1ED0 => array(0x1ED1), 0x1ED2 => array(0x1ED3), 0x1ED4 => array(0x1ED5),
1829
+					0x1ED6 => array(0x1ED7), 0x1ED8 => array(0x1ED9), 0x1EDA => array(0x1EDB),
1830
+					0x1EDC => array(0x1EDD), 0x1EDE => array(0x1EDF), 0x1EE0 => array(0x1EE1),
1831
+					0x1EE2 => array(0x1EE3), 0x1EE4 => array(0x1EE5), 0x1EE6 => array(0x1EE7),
1832
+					0x1EE8 => array(0x1EE9), 0x1EEA => array(0x1EEB), 0x1EEC => array(0x1EED),
1833
+					0x1EEE => array(0x1EEF), 0x1EF0 => array(0x1EF1), 0x1EF2 => array(0x1EF3),
1834
+					0x1EF4 => array(0x1EF5), 0x1EF6 => array(0x1EF7), 0x1EF8 => array(0x1EF9),
1835
+					0x1EFA => array(0x1EFB), 0x1EFC => array(0x1EFD), 0x1EFE => array(0x1EFF),
1836
+					0x1F08 => array(0x1F00), 0x1F09 => array(0x1F01), 0x1F0A => array(0x1F02),
1837
+					0x1F0B => array(0x1F03), 0x1F0C => array(0x1F04), 0x1F0D => array(0x1F05),
1838
+					0x1F0E => array(0x1F06), 0x1F0F => array(0x1F07), 0x1F18 => array(0x1F10),
1839
+					0x1F19 => array(0x1F11), 0x1F1A => array(0x1F12), 0x1F1B => array(0x1F13),
1840
+					0x1F1C => array(0x1F14), 0x1F1D => array(0x1F15), 0x1F28 => array(0x1F20),
1841
+					0x1F29 => array(0x1F21), 0x1F2A => array(0x1F22), 0x1F2B => array(0x1F23),
1842
+					0x1F2C => array(0x1F24), 0x1F2D => array(0x1F25), 0x1F2E => array(0x1F26),
1843
+					0x1F2F => array(0x1F27), 0x1F38 => array(0x1F30), 0x1F39 => array(0x1F31),
1844
+					0x1F3A => array(0x1F32), 0x1F3B => array(0x1F33), 0x1F3C => array(0x1F34),
1845
+					0x1F3D => array(0x1F35), 0x1F3E => array(0x1F36), 0x1F3F => array(0x1F37),
1846
+					0x1F48 => array(0x1F40), 0x1F49 => array(0x1F41), 0x1F4A => array(0x1F42),
1847
+					0x1F4B => array(0x1F43), 0x1F4C => array(0x1F44), 0x1F4D => array(0x1F45),
1848
+					0x1F59 => array(0x1F51), 0x1F5B => array(0x1F53), 0x1F5D => array(0x1F55),
1849
+					0x1F5F => array(0x1F57), 0x1F68 => array(0x1F60), 0x1F69 => array(0x1F61),
1850
+					0x1F6A => array(0x1F62), 0x1F6B => array(0x1F63), 0x1F6C => array(0x1F64),
1851
+					0x1F6D => array(0x1F65), 0x1F6E => array(0x1F66), 0x1F6F => array(0x1F67),
1852
+					0x1F71 => array(0x3AC), 0x1F73 => array(0x3AD), 0x1F75 => array(0x3AE),
1853
+					0x1F77 => array(0x3AF), 0x1F79 => array(0x3CC), 0x1F7B => array(0x3CD),
1854
+					0x1F7D => array(0x3CE), 0x1F80 => array(0x1F00, 0x3B9), 0x1F81 => array(0x1F01, 0x3B9),
1855
+					0x1F82 => array(0x1F02, 0x3B9), 0x1F83 => array(0x1F03, 0x3B9), 0x1F84 => array(0x1F04, 0x3B9),
1856
+					0x1F85 => array(0x1F05, 0x3B9), 0x1F86 => array(0x1F06, 0x3B9), 0x1F87 => array(0x1F07, 0x3B9),
1857
+					0x1F88 => array(0x1F00, 0x3B9), 0x1F89 => array(0x1F01, 0x3B9), 0x1F8A => array(0x1F02, 0x3B9),
1858
+					0x1F8B => array(0x1F03, 0x3B9), 0x1F8C => array(0x1F04, 0x3B9), 0x1F8D => array(0x1F05, 0x3B9),
1859
+					0x1F8E => array(0x1F06, 0x3B9), 0x1F8F => array(0x1F07, 0x3B9), 0x1F90 => array(0x1F20, 0x3B9),
1860
+					0x1F91 => array(0x1F21, 0x3B9), 0x1F92 => array(0x1F22, 0x3B9), 0x1F93 => array(0x1F23, 0x3B9),
1861
+					0x1F94 => array(0x1F24, 0x3B9), 0x1F95 => array(0x1F25, 0x3B9), 0x1F96 => array(0x1F26, 0x3B9),
1862
+					0x1F97 => array(0x1F27, 0x3B9), 0x1F98 => array(0x1F20, 0x3B9), 0x1F99 => array(0x1F21, 0x3B9),
1863
+					0x1F9A => array(0x1F22, 0x3B9), 0x1F9B => array(0x1F23, 0x3B9), 0x1F9C => array(0x1F24, 0x3B9),
1864
+					0x1F9D => array(0x1F25, 0x3B9), 0x1F9E => array(0x1F26, 0x3B9), 0x1F9F => array(0x1F27, 0x3B9),
1865
+					0x1FA0 => array(0x1F60, 0x3B9), 0x1FA1 => array(0x1F61, 0x3B9), 0x1FA2 => array(0x1F62, 0x3B9),
1866
+					0x1FA3 => array(0x1F63, 0x3B9), 0x1FA4 => array(0x1F64, 0x3B9), 0x1FA5 => array(0x1F65, 0x3B9),
1867
+					0x1FA6 => array(0x1F66, 0x3B9), 0x1FA7 => array(0x1F67, 0x3B9), 0x1FA8 => array(0x1F60, 0x3B9),
1868
+					0x1FA9 => array(0x1F61, 0x3B9), 0x1FAA => array(0x1F62, 0x3B9), 0x1FAB => array(0x1F63, 0x3B9),
1869
+					0x1FAC => array(0x1F64, 0x3B9), 0x1FAD => array(0x1F65, 0x3B9), 0x1FAE => array(0x1F66, 0x3B9),
1870
+					0x1FAF => array(0x1F67, 0x3B9), 0x1FB2 => array(0x1F70, 0x3B9), 0x1FB3 => array(0x3B1, 0x3B9),
1871
+					0x1FB4 => array(0x3AC, 0x3B9), 0x1FB7 => array(0x1FB6, 0x3B9), 0x1FB8 => array(0x1FB0),
1872
+					0x1FB9 => array(0x1FB1), 0x1FBA => array(0x1F70), 0x1FBB => array(0x3AC),
1873
+					0x1FBC => array(0x3B1, 0x3B9), 0x1FBE => array(0x3B9), 0x1FC2 => array(0x1F74, 0x3B9),
1874
+					0x1FC3 => array(0x3B7, 0x3B9), 0x1FC4 => array(0x3AE, 0x3B9), 0x1FC7 => array(0x1FC6, 0x3B9),
1875
+					0x1FC8 => array(0x1F72), 0x1FC9 => array(0x3AD), 0x1FCA => array(0x1F74),
1876
+					0x1FCB => array(0x3AE), 0x1FCC => array(0x3B7, 0x3B9), 0x1FD3 => array(0x390),
1877
+					0x1FD8 => array(0x1FD0), 0x1FD9 => array(0x1FD1), 0x1FDA => array(0x1F76),
1878
+					0x1FDB => array(0x3AF), 0x1FE3 => array(0x3B0), 0x1FE8 => array(0x1FE0),
1879
+					0x1FE9 => array(0x1FE1), 0x1FEA => array(0x1F7A), 0x1FEB => array(0x3CD),
1880
+					0x1FEC => array(0x1FE5), 0x1FF2 => array(0x1F7C, 0x3B9), 0x1FF3 => array(0x3C9, 0x3B9),
1881
+					0x1FF4 => array(0x3CE, 0x3B9), 0x1FF7 => array(0x1FF6, 0x3B9), 0x1FF8 => array(0x1F78),
1882
+					0x1FF9 => array(0x3CC), 0x1FFA => array(0x1F7C), 0x1FFB => array(0x3CE),
1883
+					0x1FFC => array(0x3C9, 0x3B9), 0x2011 => array(0x2010), 0x2033 => array(0x2032, 0x2032),
1884
+					0x2034 => array(0x2032, 0x2032, 0x2032), 0x2036 => array(0x2035, 0x2035), 0x2037 => array(0x2035, 0x2035, 0x2035),
1885
+					0x2057 => array(0x2032, 0x2032, 0x2032, 0x2032), 0x2070 => array(0x30), 0x2071 => array(0x69),
1886
+					0x2074 => array(0x34), 0x2075 => array(0x35), 0x2076 => array(0x36),
1887
+					0x2077 => array(0x37), 0x2078 => array(0x38), 0x2079 => array(0x39),
1888
+					0x207B => array(0x2212), 0x207F => array(0x6E), 0x2080 => array(0x30),
1889
+					0x2081 => array(0x31), 0x2082 => array(0x32), 0x2083 => array(0x33),
1890
+					0x2084 => array(0x34), 0x2085 => array(0x35), 0x2086 => array(0x36),
1891
+					0x2087 => array(0x37), 0x2088 => array(0x38), 0x2089 => array(0x39),
1892
+					0x208B => array(0x2212), 0x2090 => array(0x61), 0x2091 => array(0x65),
1893
+					0x2092 => array(0x6F), 0x2093 => array(0x78), 0x2094 => array(0x259),
1894
+					0x2095 => array(0x68), 0x2096 => array(0x6B), 0x2097 => array(0x6C),
1895
+					0x2098 => array(0x6D), 0x2099 => array(0x6E), 0x209A => array(0x70),
1896
+					0x209B => array(0x73), 0x209C => array(0x74), 0x20A8 => array(0x72, 0x73),
1897
+					0x2102 => array(0x63), 0x2103 => array(0xB0, 0x63), 0x2107 => array(0x25B),
1898
+					0x2109 => array(0xB0, 0x66), 0x210A => array(0x67), 0x210B => array(0x68),
1899
+					0x210C => array(0x68), 0x210D => array(0x68), 0x210E => array(0x68),
1900
+					0x210F => array(0x127), 0x2110 => array(0x69), 0x2111 => array(0x69),
1901
+					0x2112 => array(0x6C), 0x2113 => array(0x6C), 0x2115 => array(0x6E),
1902
+					0x2116 => array(0x6E, 0x6F), 0x2119 => array(0x70), 0x211A => array(0x71),
1903
+					0x211B => array(0x72), 0x211C => array(0x72), 0x211D => array(0x72),
1904
+					0x2120 => array(0x73, 0x6D), 0x2121 => array(0x74, 0x65, 0x6C), 0x2122 => array(0x74, 0x6D),
1905
+					0x2124 => array(0x7A), 0x2126 => array(0x3C9), 0x2128 => array(0x7A),
1906
+					0x212A => array(0x6B), 0x212B => array(0xE5), 0x212C => array(0x62),
1907
+					0x212D => array(0x63), 0x212F => array(0x65), 0x2130 => array(0x65),
1908
+					0x2131 => array(0x66), 0x2133 => array(0x6D), 0x2134 => array(0x6F),
1909
+					0x2135 => array(0x5D0), 0x2136 => array(0x5D1), 0x2137 => array(0x5D2),
1910
+					0x2138 => array(0x5D3), 0x2139 => array(0x69), 0x213B => array(0x66, 0x61, 0x78),
1911
+					0x213C => array(0x3C0), 0x213D => array(0x3B3), 0x213E => array(0x3B3),
1912
+					0x213F => array(0x3C0), 0x2140 => array(0x2211), 0x2145 => array(0x64),
1913
+					0x2146 => array(0x64), 0x2147 => array(0x65), 0x2148 => array(0x69),
1914
+					0x2149 => array(0x6A), 0x2150 => array(0x31, 0x2044, 0x37), 0x2151 => array(0x31, 0x2044, 0x39),
1915
+					0x2152 => array(0x31, 0x2044, 0x31, 0x30), 0x2153 => array(0x31, 0x2044, 0x33), 0x2154 => array(0x32, 0x2044, 0x33),
1916
+					0x2155 => array(0x31, 0x2044, 0x35), 0x2156 => array(0x32, 0x2044, 0x35), 0x2157 => array(0x33, 0x2044, 0x35),
1917
+					0x2158 => array(0x34, 0x2044, 0x35), 0x2159 => array(0x31, 0x2044, 0x36), 0x215A => array(0x35, 0x2044, 0x36),
1918
+					0x215B => array(0x31, 0x2044, 0x38), 0x215C => array(0x33, 0x2044, 0x38), 0x215D => array(0x35, 0x2044, 0x38),
1919
+					0x215E => array(0x37, 0x2044, 0x38), 0x215F => array(0x31, 0x2044), 0x2160 => array(0x69),
1920
+					0x2161 => array(0x69, 0x69), 0x2162 => array(0x69, 0x69, 0x69), 0x2163 => array(0x69, 0x76),
1921
+					0x2164 => array(0x76), 0x2165 => array(0x76, 0x69), 0x2166 => array(0x76, 0x69, 0x69),
1922
+					0x2167 => array(0x76, 0x69, 0x69, 0x69), 0x2168 => array(0x69, 0x78), 0x2169 => array(0x78),
1923
+					0x216A => array(0x78, 0x69), 0x216B => array(0x78, 0x69, 0x69), 0x216C => array(0x6C),
1924
+					0x216D => array(0x63), 0x216E => array(0x64), 0x216F => array(0x6D),
1925
+					0x2170 => array(0x69), 0x2171 => array(0x69, 0x69), 0x2172 => array(0x69, 0x69, 0x69),
1926
+					0x2173 => array(0x69, 0x76), 0x2174 => array(0x76), 0x2175 => array(0x76, 0x69),
1927
+					0x2176 => array(0x76, 0x69, 0x69), 0x2177 => array(0x76, 0x69, 0x69, 0x69), 0x2178 => array(0x69, 0x78),
1928
+					0x2179 => array(0x78), 0x217A => array(0x78, 0x69), 0x217B => array(0x78, 0x69, 0x69),
1929
+					0x217C => array(0x6C), 0x217D => array(0x63), 0x217E => array(0x64),
1930
+					0x217F => array(0x6D), 0x2189 => array(0x30, 0x2044, 0x33), 0x222C => array(0x222B, 0x222B),
1931
+					0x222D => array(0x222B, 0x222B, 0x222B), 0x222F => array(0x222E, 0x222E), 0x2230 => array(0x222E, 0x222E, 0x222E),
1932
+					0x2329 => array(0x3008), 0x232A => array(0x3009), 0x2460 => array(0x31),
1933
+					0x2461 => array(0x32), 0x2462 => array(0x33), 0x2463 => array(0x34),
1934
+					0x2464 => array(0x35), 0x2465 => array(0x36), 0x2466 => array(0x37),
1935
+					0x2467 => array(0x38), 0x2468 => array(0x39), 0x2469 => array(0x31, 0x30),
1936
+					0x246A => array(0x31, 0x31), 0x246B => array(0x31, 0x32), 0x246C => array(0x31, 0x33),
1937
+					0x246D => array(0x31, 0x34), 0x246E => array(0x31, 0x35), 0x246F => array(0x31, 0x36),
1938
+					0x2470 => array(0x31, 0x37), 0x2471 => array(0x31, 0x38), 0x2472 => array(0x31, 0x39),
1939
+					0x2473 => array(0x32, 0x30), 0x24B6 => array(0x61), 0x24B7 => array(0x62),
1940
+					0x24B8 => array(0x63), 0x24B9 => array(0x64), 0x24BA => array(0x65),
1941
+					0x24BB => array(0x66), 0x24BC => array(0x67), 0x24BD => array(0x68),
1942
+					0x24BE => array(0x69), 0x24BF => array(0x6A), 0x24C0 => array(0x6B),
1943
+					0x24C1 => array(0x6C), 0x24C2 => array(0x6D), 0x24C3 => array(0x6E),
1944
+					0x24C4 => array(0x6F), 0x24C5 => array(0x70), 0x24C6 => array(0x71),
1945
+					0x24C7 => array(0x72), 0x24C8 => array(0x73), 0x24C9 => array(0x74),
1946
+					0x24CA => array(0x75), 0x24CB => array(0x76), 0x24CC => array(0x77),
1947
+					0x24CD => array(0x78), 0x24CE => array(0x79), 0x24CF => array(0x7A),
1948
+					0x24D0 => array(0x61), 0x24D1 => array(0x62), 0x24D2 => array(0x63),
1949
+					0x24D3 => array(0x64), 0x24D4 => array(0x65), 0x24D5 => array(0x66),
1950
+					0x24D6 => array(0x67), 0x24D7 => array(0x68), 0x24D8 => array(0x69),
1951
+					0x24D9 => array(0x6A), 0x24DA => array(0x6B), 0x24DB => array(0x6C),
1952
+					0x24DC => array(0x6D), 0x24DD => array(0x6E), 0x24DE => array(0x6F),
1953
+					0x24DF => array(0x70), 0x24E0 => array(0x71), 0x24E1 => array(0x72),
1954
+					0x24E2 => array(0x73), 0x24E3 => array(0x74), 0x24E4 => array(0x75),
1955
+					0x24E5 => array(0x76), 0x24E6 => array(0x77), 0x24E7 => array(0x78),
1956
+					0x24E8 => array(0x79), 0x24E9 => array(0x7A), 0x24EA => array(0x30),
1957
+					0x2A0C => array(0x222B, 0x222B, 0x222B, 0x222B), 0x2ADC => array(0x2ADD, 0x338), 0x2C00 => array(0x2C30),
1958
+					0x2C01 => array(0x2C31), 0x2C02 => array(0x2C32), 0x2C03 => array(0x2C33),
1959
+					0x2C04 => array(0x2C34), 0x2C05 => array(0x2C35), 0x2C06 => array(0x2C36),
1960
+					0x2C07 => array(0x2C37), 0x2C08 => array(0x2C38), 0x2C09 => array(0x2C39),
1961
+					0x2C0A => array(0x2C3A), 0x2C0B => array(0x2C3B), 0x2C0C => array(0x2C3C),
1962
+					0x2C0D => array(0x2C3D), 0x2C0E => array(0x2C3E), 0x2C0F => array(0x2C3F),
1963
+					0x2C10 => array(0x2C40), 0x2C11 => array(0x2C41), 0x2C12 => array(0x2C42),
1964
+					0x2C13 => array(0x2C43), 0x2C14 => array(0x2C44), 0x2C15 => array(0x2C45),
1965
+					0x2C16 => array(0x2C46), 0x2C17 => array(0x2C47), 0x2C18 => array(0x2C48),
1966
+					0x2C19 => array(0x2C49), 0x2C1A => array(0x2C4A), 0x2C1B => array(0x2C4B),
1967
+					0x2C1C => array(0x2C4C), 0x2C1D => array(0x2C4D), 0x2C1E => array(0x2C4E),
1968
+					0x2C1F => array(0x2C4F), 0x2C20 => array(0x2C50), 0x2C21 => array(0x2C51),
1969
+					0x2C22 => array(0x2C52), 0x2C23 => array(0x2C53), 0x2C24 => array(0x2C54),
1970
+					0x2C25 => array(0x2C55), 0x2C26 => array(0x2C56), 0x2C27 => array(0x2C57),
1971
+					0x2C28 => array(0x2C58), 0x2C29 => array(0x2C59), 0x2C2A => array(0x2C5A),
1972
+					0x2C2B => array(0x2C5B), 0x2C2C => array(0x2C5C), 0x2C2D => array(0x2C5D),
1973
+					0x2C2E => array(0x2C5E), 0x2C60 => array(0x2C61), 0x2C62 => array(0x26B),
1974
+					0x2C63 => array(0x1D7D), 0x2C64 => array(0x27D), 0x2C67 => array(0x2C68),
1975
+					0x2C69 => array(0x2C6A), 0x2C6B => array(0x2C6C), 0x2C6D => array(0x251),
1976
+					0x2C6E => array(0x271), 0x2C6F => array(0x250), 0x2C70 => array(0x252),
1977
+					0x2C72 => array(0x2C73), 0x2C75 => array(0x2C76), 0x2C7C => array(0x6A),
1978
+					0x2C7D => array(0x76), 0x2C7E => array(0x23F), 0x2C7F => array(0x240),
1979
+					0x2C80 => array(0x2C81), 0x2C82 => array(0x2C83), 0x2C84 => array(0x2C85),
1980
+					0x2C86 => array(0x2C87), 0x2C88 => array(0x2C89), 0x2C8A => array(0x2C8B),
1981
+					0x2C8C => array(0x2C8D), 0x2C8E => array(0x2C8F), 0x2C90 => array(0x2C91),
1982
+					0x2C92 => array(0x2C93), 0x2C94 => array(0x2C95), 0x2C96 => array(0x2C97),
1983
+					0x2C98 => array(0x2C99), 0x2C9A => array(0x2C9B), 0x2C9C => array(0x2C9D),
1984
+					0x2C9E => array(0x2C9F), 0x2CA0 => array(0x2CA1), 0x2CA2 => array(0x2CA3),
1985
+					0x2CA4 => array(0x2CA5), 0x2CA6 => array(0x2CA7), 0x2CA8 => array(0x2CA9),
1986
+					0x2CAA => array(0x2CAB), 0x2CAC => array(0x2CAD), 0x2CAE => array(0x2CAF),
1987
+					0x2CB0 => array(0x2CB1), 0x2CB2 => array(0x2CB3), 0x2CB4 => array(0x2CB5),
1988
+					0x2CB6 => array(0x2CB7), 0x2CB8 => array(0x2CB9), 0x2CBA => array(0x2CBB),
1989
+					0x2CBC => array(0x2CBD), 0x2CBE => array(0x2CBF), 0x2CC0 => array(0x2CC1),
1990
+					0x2CC2 => array(0x2CC3), 0x2CC4 => array(0x2CC5), 0x2CC6 => array(0x2CC7),
1991
+					0x2CC8 => array(0x2CC9), 0x2CCA => array(0x2CCB), 0x2CCC => array(0x2CCD),
1992
+					0x2CCE => array(0x2CCF), 0x2CD0 => array(0x2CD1), 0x2CD2 => array(0x2CD3),
1993
+					0x2CD4 => array(0x2CD5), 0x2CD6 => array(0x2CD7), 0x2CD8 => array(0x2CD9),
1994
+					0x2CDA => array(0x2CDB), 0x2CDC => array(0x2CDD), 0x2CDE => array(0x2CDF),
1995
+					0x2CE0 => array(0x2CE1), 0x2CE2 => array(0x2CE3), 0x2CEB => array(0x2CEC),
1996
+					0x2CED => array(0x2CEE), 0x2CF2 => array(0x2CF3), 0x2D6F => array(0x2D61),
1997
+					0x2E9F => array(0x6BCD), 0x2EF3 => array(0x9F9F), 0x2F00 => array(0x4E00),
1998
+					0x2F01 => array(0x4E28), 0x2F02 => array(0x4E36), 0x2F03 => array(0x4E3F),
1999
+					0x2F04 => array(0x4E59), 0x2F05 => array(0x4E85), 0x2F06 => array(0x4E8C),
2000
+					0x2F07 => array(0x4EA0), 0x2F08 => array(0x4EBA), 0x2F09 => array(0x513F),
2001
+					0x2F0A => array(0x5165), 0x2F0B => array(0x516B), 0x2F0C => array(0x5182),
2002
+					0x2F0D => array(0x5196), 0x2F0E => array(0x51AB), 0x2F0F => array(0x51E0),
2003
+					0x2F10 => array(0x51F5), 0x2F11 => array(0x5200), 0x2F12 => array(0x529B),
2004
+					0x2F13 => array(0x52F9), 0x2F14 => array(0x5315), 0x2F15 => array(0x531A),
2005
+					0x2F16 => array(0x5338), 0x2F17 => array(0x5341), 0x2F18 => array(0x535C),
2006
+					0x2F19 => array(0x5369), 0x2F1A => array(0x5382), 0x2F1B => array(0x53B6),
2007
+					0x2F1C => array(0x53C8), 0x2F1D => array(0x53E3), 0x2F1E => array(0x56D7),
2008
+					0x2F1F => array(0x571F), 0x2F20 => array(0x58EB), 0x2F21 => array(0x5902),
2009
+					0x2F22 => array(0x590A), 0x2F23 => array(0x5915), 0x2F24 => array(0x5927),
2010
+					0x2F25 => array(0x5973), 0x2F26 => array(0x5B50), 0x2F27 => array(0x5B80),
2011
+					0x2F28 => array(0x5BF8), 0x2F29 => array(0x5C0F), 0x2F2A => array(0x5C22),
2012
+					0x2F2B => array(0x5C38), 0x2F2C => array(0x5C6E), 0x2F2D => array(0x5C71),
2013
+					0x2F2E => array(0x5DDB), 0x2F2F => array(0x5DE5), 0x2F30 => array(0x5DF1),
2014
+					0x2F31 => array(0x5DFE), 0x2F32 => array(0x5E72), 0x2F33 => array(0x5E7A),
2015
+					0x2F34 => array(0x5E7F), 0x2F35 => array(0x5EF4), 0x2F36 => array(0x5EFE),
2016
+					0x2F37 => array(0x5F0B), 0x2F38 => array(0x5F13), 0x2F39 => array(0x5F50),
2017
+					0x2F3A => array(0x5F61), 0x2F3B => array(0x5F73), 0x2F3C => array(0x5FC3),
2018
+					0x2F3D => array(0x6208), 0x2F3E => array(0x6236), 0x2F3F => array(0x624B),
2019
+					0x2F40 => array(0x652F), 0x2F41 => array(0x6534), 0x2F42 => array(0x6587),
2020
+					0x2F43 => array(0x6597), 0x2F44 => array(0x65A4), 0x2F45 => array(0x65B9),
2021
+					0x2F46 => array(0x65E0), 0x2F47 => array(0x65E5), 0x2F48 => array(0x66F0),
2022
+					0x2F49 => array(0x6708), 0x2F4A => array(0x6728), 0x2F4B => array(0x6B20),
2023
+					0x2F4C => array(0x6B62), 0x2F4D => array(0x6B79), 0x2F4E => array(0x6BB3),
2024
+					0x2F4F => array(0x6BCB), 0x2F50 => array(0x6BD4), 0x2F51 => array(0x6BDB),
2025
+					0x2F52 => array(0x6C0F), 0x2F53 => array(0x6C14), 0x2F54 => array(0x6C34),
2026
+					0x2F55 => array(0x706B), 0x2F56 => array(0x722A), 0x2F57 => array(0x7236),
2027
+					0x2F58 => array(0x723B), 0x2F59 => array(0x723F), 0x2F5A => array(0x7247),
2028
+					0x2F5B => array(0x7259), 0x2F5C => array(0x725B), 0x2F5D => array(0x72AC),
2029
+					0x2F5E => array(0x7384), 0x2F5F => array(0x7389), 0x2F60 => array(0x74DC),
2030
+					0x2F61 => array(0x74E6), 0x2F62 => array(0x7518), 0x2F63 => array(0x751F),
2031
+					0x2F64 => array(0x7528), 0x2F65 => array(0x7530), 0x2F66 => array(0x758B),
2032
+					0x2F67 => array(0x7592), 0x2F68 => array(0x7676), 0x2F69 => array(0x767D),
2033
+					0x2F6A => array(0x76AE), 0x2F6B => array(0x76BF), 0x2F6C => array(0x76EE),
2034
+					0x2F6D => array(0x77DB), 0x2F6E => array(0x77E2), 0x2F6F => array(0x77F3),
2035
+					0x2F70 => array(0x793A), 0x2F71 => array(0x79B8), 0x2F72 => array(0x79BE),
2036
+					0x2F73 => array(0x7A74), 0x2F74 => array(0x7ACB), 0x2F75 => array(0x7AF9),
2037
+					0x2F76 => array(0x7C73), 0x2F77 => array(0x7CF8), 0x2F78 => array(0x7F36),
2038
+					0x2F79 => array(0x7F51), 0x2F7A => array(0x7F8A), 0x2F7B => array(0x7FBD),
2039
+					0x2F7C => array(0x8001), 0x2F7D => array(0x800C), 0x2F7E => array(0x8012),
2040
+					0x2F7F => array(0x8033), 0x2F80 => array(0x807F), 0x2F81 => array(0x8089),
2041
+					0x2F82 => array(0x81E3), 0x2F83 => array(0x81EA), 0x2F84 => array(0x81F3),
2042
+					0x2F85 => array(0x81FC), 0x2F86 => array(0x820C), 0x2F87 => array(0x821B),
2043
+					0x2F88 => array(0x821F), 0x2F89 => array(0x826E), 0x2F8A => array(0x8272),
2044
+					0x2F8B => array(0x8278), 0x2F8C => array(0x864D), 0x2F8D => array(0x866B),
2045
+					0x2F8E => array(0x8840), 0x2F8F => array(0x884C), 0x2F90 => array(0x8863),
2046
+					0x2F91 => array(0x897E), 0x2F92 => array(0x898B), 0x2F93 => array(0x89D2),
2047
+					0x2F94 => array(0x8A00), 0x2F95 => array(0x8C37), 0x2F96 => array(0x8C46),
2048
+					0x2F97 => array(0x8C55), 0x2F98 => array(0x8C78), 0x2F99 => array(0x8C9D),
2049
+					0x2F9A => array(0x8D64), 0x2F9B => array(0x8D70), 0x2F9C => array(0x8DB3),
2050
+					0x2F9D => array(0x8EAB), 0x2F9E => array(0x8ECA), 0x2F9F => array(0x8F9B),
2051
+					0x2FA0 => array(0x8FB0), 0x2FA1 => array(0x8FB5), 0x2FA2 => array(0x9091),
2052
+					0x2FA3 => array(0x9149), 0x2FA4 => array(0x91C6), 0x2FA5 => array(0x91CC),
2053
+					0x2FA6 => array(0x91D1), 0x2FA7 => array(0x9577), 0x2FA8 => array(0x9580),
2054
+					0x2FA9 => array(0x961C), 0x2FAA => array(0x96B6), 0x2FAB => array(0x96B9),
2055
+					0x2FAC => array(0x96E8), 0x2FAD => array(0x9751), 0x2FAE => array(0x975E),
2056
+					0x2FAF => array(0x9762), 0x2FB0 => array(0x9769), 0x2FB1 => array(0x97CB),
2057
+					0x2FB2 => array(0x97ED), 0x2FB3 => array(0x97F3), 0x2FB4 => array(0x9801),
2058
+					0x2FB5 => array(0x98A8), 0x2FB6 => array(0x98DB), 0x2FB7 => array(0x98DF),
2059
+					0x2FB8 => array(0x9996), 0x2FB9 => array(0x9999), 0x2FBA => array(0x99AC),
2060
+					0x2FBB => array(0x9AA8), 0x2FBC => array(0x9AD8), 0x2FBD => array(0x9ADF),
2061
+					0x2FBE => array(0x9B25), 0x2FBF => array(0x9B2F), 0x2FC0 => array(0x9B32),
2062
+					0x2FC1 => array(0x9B3C), 0x2FC2 => array(0x9B5A), 0x2FC3 => array(0x9CE5),
2063
+					0x2FC4 => array(0x9E75), 0x2FC5 => array(0x9E7F), 0x2FC6 => array(0x9EA5),
2064
+					0x2FC7 => array(0x9EBB), 0x2FC8 => array(0x9EC3), 0x2FC9 => array(0x9ECD),
2065
+					0x2FCA => array(0x9ED1), 0x2FCB => array(0x9EF9), 0x2FCC => array(0x9EFD),
2066
+					0x2FCD => array(0x9F0E), 0x2FCE => array(0x9F13), 0x2FCF => array(0x9F20),
2067
+					0x2FD0 => array(0x9F3B), 0x2FD1 => array(0x9F4A), 0x2FD2 => array(0x9F52),
2068
+					0x2FD3 => array(0x9F8D), 0x2FD4 => array(0x9F9C), 0x2FD5 => array(0x9FA0),
2069
+					0x3002 => array(0x2E), 0x3036 => array(0x3012), 0x3038 => array(0x5341),
2070
+					0x3039 => array(0x5344), 0x303A => array(0x5345), 0x309F => array(0x3088, 0x308A),
2071
+					0x30FF => array(0x30B3, 0x30C8), 0x3131 => array(0x1100), 0x3132 => array(0x1101),
2072
+					0x3133 => array(0x11AA), 0x3134 => array(0x1102), 0x3135 => array(0x11AC),
2073
+					0x3136 => array(0x11AD), 0x3137 => array(0x1103), 0x3138 => array(0x1104),
2074
+					0x3139 => array(0x1105), 0x313A => array(0x11B0), 0x313B => array(0x11B1),
2075
+					0x313C => array(0x11B2), 0x313D => array(0x11B3), 0x313E => array(0x11B4),
2076
+					0x313F => array(0x11B5), 0x3140 => array(0x111A), 0x3141 => array(0x1106),
2077
+					0x3142 => array(0x1107), 0x3143 => array(0x1108), 0x3144 => array(0x1121),
2078
+					0x3145 => array(0x1109), 0x3146 => array(0x110A), 0x3147 => array(0x110B),
2079
+					0x3148 => array(0x110C), 0x3149 => array(0x110D), 0x314A => array(0x110E),
2080
+					0x314B => array(0x110F), 0x314C => array(0x1110), 0x314D => array(0x1111),
2081
+					0x314E => array(0x1112), 0x314F => array(0x1161), 0x3150 => array(0x1162),
2082
+					0x3151 => array(0x1163), 0x3152 => array(0x1164), 0x3153 => array(0x1165),
2083
+					0x3154 => array(0x1166), 0x3155 => array(0x1167), 0x3156 => array(0x1168),
2084
+					0x3157 => array(0x1169), 0x3158 => array(0x116A), 0x3159 => array(0x116B),
2085
+					0x315A => array(0x116C), 0x315B => array(0x116D), 0x315C => array(0x116E),
2086
+					0x315D => array(0x116F), 0x315E => array(0x1170), 0x315F => array(0x1171),
2087
+					0x3160 => array(0x1172), 0x3161 => array(0x1173), 0x3162 => array(0x1174),
2088
+					0x3163 => array(0x1175), 0x3165 => array(0x1114), 0x3166 => array(0x1115),
2089
+					0x3167 => array(0x11C7), 0x3168 => array(0x11C8), 0x3169 => array(0x11CC),
2090
+					0x316A => array(0x11CE), 0x316B => array(0x11D3), 0x316C => array(0x11D7),
2091
+					0x316D => array(0x11D9), 0x316E => array(0x111C), 0x316F => array(0x11DD),
2092
+					0x3170 => array(0x11DF), 0x3171 => array(0x111D), 0x3172 => array(0x111E),
2093
+					0x3173 => array(0x1120), 0x3174 => array(0x1122), 0x3175 => array(0x1123),
2094
+					0x3176 => array(0x1127), 0x3177 => array(0x1129), 0x3178 => array(0x112B),
2095
+					0x3179 => array(0x112C), 0x317A => array(0x112D), 0x317B => array(0x112E),
2096
+					0x317C => array(0x112F), 0x317D => array(0x1132), 0x317E => array(0x1136),
2097
+					0x317F => array(0x1140), 0x3180 => array(0x1147), 0x3181 => array(0x114C),
2098
+					0x3182 => array(0x11F1), 0x3183 => array(0x11F2), 0x3184 => array(0x1157),
2099
+					0x3185 => array(0x1158), 0x3186 => array(0x1159), 0x3187 => array(0x1184),
2100
+					0x3188 => array(0x1185), 0x3189 => array(0x1188), 0x318A => array(0x1191),
2101
+					0x318B => array(0x1192), 0x318C => array(0x1194), 0x318D => array(0x119E),
2102
+					0x318E => array(0x11A1), 0x3192 => array(0x4E00), 0x3193 => array(0x4E8C),
2103
+					0x3194 => array(0x4E09), 0x3195 => array(0x56DB), 0x3196 => array(0x4E0A),
2104
+					0x3197 => array(0x4E2D), 0x3198 => array(0x4E0B), 0x3199 => array(0x7532),
2105
+					0x319A => array(0x4E59), 0x319B => array(0x4E19), 0x319C => array(0x4E01),
2106
+					0x319D => array(0x5929), 0x319E => array(0x5730), 0x319F => array(0x4EBA),
2107
+					0x3244 => array(0x554F), 0x3245 => array(0x5E7C), 0x3246 => array(0x6587),
2108
+					0x3247 => array(0x7B8F), 0x3250 => array(0x70, 0x74, 0x65), 0x3251 => array(0x32, 0x31),
2109
+					0x3252 => array(0x32, 0x32), 0x3253 => array(0x32, 0x33), 0x3254 => array(0x32, 0x34),
2110
+					0x3255 => array(0x32, 0x35), 0x3256 => array(0x32, 0x36), 0x3257 => array(0x32, 0x37),
2111
+					0x3258 => array(0x32, 0x38), 0x3259 => array(0x32, 0x39), 0x325A => array(0x33, 0x30),
2112
+					0x325B => array(0x33, 0x31), 0x325C => array(0x33, 0x32), 0x325D => array(0x33, 0x33),
2113
+					0x325E => array(0x33, 0x34), 0x325F => array(0x33, 0x35), 0x3260 => array(0x1100),
2114
+					0x3261 => array(0x1102), 0x3262 => array(0x1103), 0x3263 => array(0x1105),
2115
+					0x3264 => array(0x1106), 0x3265 => array(0x1107), 0x3266 => array(0x1109),
2116
+					0x3267 => array(0x110B), 0x3268 => array(0x110C), 0x3269 => array(0x110E),
2117
+					0x326A => array(0x110F), 0x326B => array(0x1110), 0x326C => array(0x1111),
2118
+					0x326D => array(0x1112), 0x326E => array(0xAC00), 0x326F => array(0xB098),
2119
+					0x3270 => array(0xB2E4), 0x3271 => array(0xB77C), 0x3272 => array(0xB9C8),
2120
+					0x3273 => array(0xBC14), 0x3274 => array(0xC0AC), 0x3275 => array(0xC544),
2121
+					0x3276 => array(0xC790), 0x3277 => array(0xCC28), 0x3278 => array(0xCE74),
2122
+					0x3279 => array(0xD0C0), 0x327A => array(0xD30C), 0x327B => array(0xD558),
2123
+					0x327C => array(0xCC38, 0xACE0), 0x327D => array(0xC8FC, 0xC758), 0x327E => array(0xC6B0),
2124
+					0x3280 => array(0x4E00), 0x3281 => array(0x4E8C), 0x3282 => array(0x4E09),
2125
+					0x3283 => array(0x56DB), 0x3284 => array(0x4E94), 0x3285 => array(0x516D),
2126
+					0x3286 => array(0x4E03), 0x3287 => array(0x516B), 0x3288 => array(0x4E5D),
2127
+					0x3289 => array(0x5341), 0x328A => array(0x6708), 0x328B => array(0x706B),
2128
+					0x328C => array(0x6C34), 0x328D => array(0x6728), 0x328E => array(0x91D1),
2129
+					0x328F => array(0x571F), 0x3290 => array(0x65E5), 0x3291 => array(0x682A),
2130
+					0x3292 => array(0x6709), 0x3293 => array(0x793E), 0x3294 => array(0x540D),
2131
+					0x3295 => array(0x7279), 0x3296 => array(0x8CA1), 0x3297 => array(0x795D),
2132
+					0x3298 => array(0x52B4), 0x3299 => array(0x79D8), 0x329A => array(0x7537),
2133
+					0x329B => array(0x5973), 0x329C => array(0x9069), 0x329D => array(0x512A),
2134
+					0x329E => array(0x5370), 0x329F => array(0x6CE8), 0x32A0 => array(0x9805),
2135
+					0x32A1 => array(0x4F11), 0x32A2 => array(0x5199), 0x32A3 => array(0x6B63),
2136
+					0x32A4 => array(0x4E0A), 0x32A5 => array(0x4E2D), 0x32A6 => array(0x4E0B),
2137
+					0x32A7 => array(0x5DE6), 0x32A8 => array(0x53F3), 0x32A9 => array(0x533B),
2138
+					0x32AA => array(0x5B97), 0x32AB => array(0x5B66), 0x32AC => array(0x76E3),
2139
+					0x32AD => array(0x4F01), 0x32AE => array(0x8CC7), 0x32AF => array(0x5354),
2140
+					0x32B0 => array(0x591C), 0x32B1 => array(0x33, 0x36), 0x32B2 => array(0x33, 0x37),
2141
+					0x32B3 => array(0x33, 0x38), 0x32B4 => array(0x33, 0x39), 0x32B5 => array(0x34, 0x30),
2142
+					0x32B6 => array(0x34, 0x31), 0x32B7 => array(0x34, 0x32), 0x32B8 => array(0x34, 0x33),
2143
+					0x32B9 => array(0x34, 0x34), 0x32BA => array(0x34, 0x35), 0x32BB => array(0x34, 0x36),
2144
+					0x32BC => array(0x34, 0x37), 0x32BD => array(0x34, 0x38), 0x32BE => array(0x34, 0x39),
2145
+					0x32BF => array(0x35, 0x30), 0x32C0 => array(0x31, 0x6708), 0x32C1 => array(0x32, 0x6708),
2146
+					0x32C2 => array(0x33, 0x6708), 0x32C3 => array(0x34, 0x6708), 0x32C4 => array(0x35, 0x6708),
2147
+					0x32C5 => array(0x36, 0x6708), 0x32C6 => array(0x37, 0x6708), 0x32C7 => array(0x38, 0x6708),
2148
+					0x32C8 => array(0x39, 0x6708), 0x32C9 => array(0x31, 0x30, 0x6708), 0x32CA => array(0x31, 0x31, 0x6708),
2149
+					0x32CB => array(0x31, 0x32, 0x6708), 0x32CC => array(0x68, 0x67), 0x32CD => array(0x65, 0x72, 0x67),
2150
+					0x32CE => array(0x65, 0x76), 0x32CF => array(0x6C, 0x74, 0x64), 0x32D0 => array(0x30A2),
2151
+					0x32D1 => array(0x30A4), 0x32D2 => array(0x30A6), 0x32D3 => array(0x30A8),
2152
+					0x32D4 => array(0x30AA), 0x32D5 => array(0x30AB), 0x32D6 => array(0x30AD),
2153
+					0x32D7 => array(0x30AF), 0x32D8 => array(0x30B1), 0x32D9 => array(0x30B3),
2154
+					0x32DA => array(0x30B5), 0x32DB => array(0x30B7), 0x32DC => array(0x30B9),
2155
+					0x32DD => array(0x30BB), 0x32DE => array(0x30BD), 0x32DF => array(0x30BF),
2156
+					0x32E0 => array(0x30C1), 0x32E1 => array(0x30C4), 0x32E2 => array(0x30C6),
2157
+					0x32E3 => array(0x30C8), 0x32E4 => array(0x30CA), 0x32E5 => array(0x30CB),
2158
+					0x32E6 => array(0x30CC), 0x32E7 => array(0x30CD), 0x32E8 => array(0x30CE),
2159
+					0x32E9 => array(0x30CF), 0x32EA => array(0x30D2), 0x32EB => array(0x30D5),
2160
+					0x32EC => array(0x30D8), 0x32ED => array(0x30DB), 0x32EE => array(0x30DE),
2161
+					0x32EF => array(0x30DF), 0x32F0 => array(0x30E0), 0x32F1 => array(0x30E1),
2162
+					0x32F2 => array(0x30E2), 0x32F3 => array(0x30E4), 0x32F4 => array(0x30E6),
2163
+					0x32F5 => array(0x30E8), 0x32F6 => array(0x30E9), 0x32F7 => array(0x30EA),
2164
+					0x32F8 => array(0x30EB), 0x32F9 => array(0x30EC), 0x32FA => array(0x30ED),
2165
+					0x32FB => array(0x30EF), 0x32FC => array(0x30F0), 0x32FD => array(0x30F1),
2166
+					0x32FE => array(0x30F2), 0x3300 => array(0x30A2, 0x30D1, 0x30FC, 0x30C8), 0x3301 => array(0x30A2, 0x30EB, 0x30D5, 0x30A1),
2167
+					0x3302 => array(0x30A2, 0x30F3, 0x30DA, 0x30A2), 0x3303 => array(0x30A2, 0x30FC, 0x30EB), 0x3304 => array(0x30A4, 0x30CB, 0x30F3, 0x30B0),
2168
+					0x3305 => array(0x30A4, 0x30F3, 0x30C1), 0x3306 => array(0x30A6, 0x30A9, 0x30F3), 0x3307 => array(0x30A8, 0x30B9, 0x30AF, 0x30FC, 0x30C9),
2169
+					0x3308 => array(0x30A8, 0x30FC, 0x30AB, 0x30FC), 0x3309 => array(0x30AA, 0x30F3, 0x30B9), 0x330A => array(0x30AA, 0x30FC, 0x30E0),
2170
+					0x330B => array(0x30AB, 0x30A4, 0x30EA), 0x330C => array(0x30AB, 0x30E9, 0x30C3, 0x30C8), 0x330D => array(0x30AB, 0x30ED, 0x30EA, 0x30FC),
2171
+					0x330E => array(0x30AC, 0x30ED, 0x30F3), 0x330F => array(0x30AC, 0x30F3, 0x30DE), 0x3310 => array(0x30AE, 0x30AC),
2172
+					0x3311 => array(0x30AE, 0x30CB, 0x30FC), 0x3312 => array(0x30AD, 0x30E5, 0x30EA, 0x30FC), 0x3313 => array(0x30AE, 0x30EB, 0x30C0, 0x30FC),
2173
+					0x3314 => array(0x30AD, 0x30ED), 0x3315 => array(0x30AD, 0x30ED, 0x30B0, 0x30E9, 0x30E0), 0x3316 => array(0x30AD, 0x30ED, 0x30E1, 0x30FC, 0x30C8, 0x30EB),
2174
+					0x3317 => array(0x30AD, 0x30ED, 0x30EF, 0x30C3, 0x30C8), 0x3318 => array(0x30B0, 0x30E9, 0x30E0), 0x3319 => array(0x30B0, 0x30E9, 0x30E0, 0x30C8, 0x30F3),
2175
+					0x331A => array(0x30AF, 0x30EB, 0x30BC, 0x30A4, 0x30ED), 0x331B => array(0x30AF, 0x30ED, 0x30FC, 0x30CD), 0x331C => array(0x30B1, 0x30FC, 0x30B9),
2176
+					0x331D => array(0x30B3, 0x30EB, 0x30CA), 0x331E => array(0x30B3, 0x30FC, 0x30DD), 0x331F => array(0x30B5, 0x30A4, 0x30AF, 0x30EB),
2177
+					0x3320 => array(0x30B5, 0x30F3, 0x30C1, 0x30FC, 0x30E0), 0x3321 => array(0x30B7, 0x30EA, 0x30F3, 0x30B0), 0x3322 => array(0x30BB, 0x30F3, 0x30C1),
2178
+					0x3323 => array(0x30BB, 0x30F3, 0x30C8), 0x3324 => array(0x30C0, 0x30FC, 0x30B9), 0x3325 => array(0x30C7, 0x30B7),
2179
+					0x3326 => array(0x30C9, 0x30EB), 0x3327 => array(0x30C8, 0x30F3), 0x3328 => array(0x30CA, 0x30CE),
2180
+					0x3329 => array(0x30CE, 0x30C3, 0x30C8), 0x332A => array(0x30CF, 0x30A4, 0x30C4), 0x332B => array(0x30D1, 0x30FC, 0x30BB, 0x30F3, 0x30C8),
2181
+					0x332C => array(0x30D1, 0x30FC, 0x30C4), 0x332D => array(0x30D0, 0x30FC, 0x30EC, 0x30EB), 0x332E => array(0x30D4, 0x30A2, 0x30B9, 0x30C8, 0x30EB),
2182
+					0x332F => array(0x30D4, 0x30AF, 0x30EB), 0x3330 => array(0x30D4, 0x30B3), 0x3331 => array(0x30D3, 0x30EB),
2183
+					0x3332 => array(0x30D5, 0x30A1, 0x30E9, 0x30C3, 0x30C9), 0x3333 => array(0x30D5, 0x30A3, 0x30FC, 0x30C8), 0x3334 => array(0x30D6, 0x30C3, 0x30B7, 0x30A7, 0x30EB),
2184
+					0x3335 => array(0x30D5, 0x30E9, 0x30F3), 0x3336 => array(0x30D8, 0x30AF, 0x30BF, 0x30FC, 0x30EB), 0x3337 => array(0x30DA, 0x30BD),
2185
+					0x3338 => array(0x30DA, 0x30CB, 0x30D2), 0x3339 => array(0x30D8, 0x30EB, 0x30C4), 0x333A => array(0x30DA, 0x30F3, 0x30B9),
2186
+					0x333B => array(0x30DA, 0x30FC, 0x30B8), 0x333C => array(0x30D9, 0x30FC, 0x30BF), 0x333D => array(0x30DD, 0x30A4, 0x30F3, 0x30C8),
2187
+					0x333E => array(0x30DC, 0x30EB, 0x30C8), 0x333F => array(0x30DB, 0x30F3), 0x3340 => array(0x30DD, 0x30F3, 0x30C9),
2188
+					0x3341 => array(0x30DB, 0x30FC, 0x30EB), 0x3342 => array(0x30DB, 0x30FC, 0x30F3), 0x3343 => array(0x30DE, 0x30A4, 0x30AF, 0x30ED),
2189
+					0x3344 => array(0x30DE, 0x30A4, 0x30EB), 0x3345 => array(0x30DE, 0x30C3, 0x30CF), 0x3346 => array(0x30DE, 0x30EB, 0x30AF),
2190
+					0x3347 => array(0x30DE, 0x30F3, 0x30B7, 0x30E7, 0x30F3), 0x3348 => array(0x30DF, 0x30AF, 0x30ED, 0x30F3), 0x3349 => array(0x30DF, 0x30EA),
2191
+					0x334A => array(0x30DF, 0x30EA, 0x30D0, 0x30FC, 0x30EB), 0x334B => array(0x30E1, 0x30AC), 0x334C => array(0x30E1, 0x30AC, 0x30C8, 0x30F3),
2192
+					0x334D => array(0x30E1, 0x30FC, 0x30C8, 0x30EB), 0x334E => array(0x30E4, 0x30FC, 0x30C9), 0x334F => array(0x30E4, 0x30FC, 0x30EB),
2193
+					0x3350 => array(0x30E6, 0x30A2, 0x30F3), 0x3351 => array(0x30EA, 0x30C3, 0x30C8, 0x30EB), 0x3352 => array(0x30EA, 0x30E9),
2194
+					0x3353 => array(0x30EB, 0x30D4, 0x30FC), 0x3354 => array(0x30EB, 0x30FC, 0x30D6, 0x30EB), 0x3355 => array(0x30EC, 0x30E0),
2195
+					0x3356 => array(0x30EC, 0x30F3, 0x30C8, 0x30B2, 0x30F3), 0x3357 => array(0x30EF, 0x30C3, 0x30C8), 0x3358 => array(0x30, 0x70B9),
2196
+					0x3359 => array(0x31, 0x70B9), 0x335A => array(0x32, 0x70B9), 0x335B => array(0x33, 0x70B9),
2197
+					0x335C => array(0x34, 0x70B9), 0x335D => array(0x35, 0x70B9), 0x335E => array(0x36, 0x70B9),
2198
+					0x335F => array(0x37, 0x70B9), 0x3360 => array(0x38, 0x70B9), 0x3361 => array(0x39, 0x70B9),
2199
+					0x3362 => array(0x31, 0x30, 0x70B9), 0x3363 => array(0x31, 0x31, 0x70B9), 0x3364 => array(0x31, 0x32, 0x70B9),
2200
+					0x3365 => array(0x31, 0x33, 0x70B9), 0x3366 => array(0x31, 0x34, 0x70B9), 0x3367 => array(0x31, 0x35, 0x70B9),
2201
+					0x3368 => array(0x31, 0x36, 0x70B9), 0x3369 => array(0x31, 0x37, 0x70B9), 0x336A => array(0x31, 0x38, 0x70B9),
2202
+					0x336B => array(0x31, 0x39, 0x70B9), 0x336C => array(0x32, 0x30, 0x70B9), 0x336D => array(0x32, 0x31, 0x70B9),
2203
+					0x336E => array(0x32, 0x32, 0x70B9), 0x336F => array(0x32, 0x33, 0x70B9), 0x3370 => array(0x32, 0x34, 0x70B9),
2204
+					0x3371 => array(0x68, 0x70, 0x61), 0x3372 => array(0x64, 0x61), 0x3373 => array(0x61, 0x75),
2205
+					0x3374 => array(0x62, 0x61, 0x72), 0x3375 => array(0x6F, 0x76), 0x3376 => array(0x70, 0x63),
2206
+					0x3377 => array(0x64, 0x6D), 0x3378 => array(0x64, 0x6D, 0x32), 0x3379 => array(0x64, 0x6D, 0x33),
2207
+					0x337A => array(0x69, 0x75), 0x337B => array(0x5E73, 0x6210), 0x337C => array(0x662D, 0x548C),
2208
+					0x337D => array(0x5927, 0x6B63), 0x337E => array(0x660E, 0x6CBB), 0x337F => array(0x682A, 0x5F0F, 0x4F1A, 0x793E),
2209
+					0x3380 => array(0x70, 0x61), 0x3381 => array(0x6E, 0x61), 0x3382 => array(0x3BC, 0x61),
2210
+					0x3383 => array(0x6D, 0x61), 0x3384 => array(0x6B, 0x61), 0x3385 => array(0x6B, 0x62),
2211
+					0x3386 => array(0x6D, 0x62), 0x3387 => array(0x67, 0x62), 0x3388 => array(0x63, 0x61, 0x6C),
2212
+					0x3389 => array(0x6B, 0x63, 0x61, 0x6C), 0x338A => array(0x70, 0x66), 0x338B => array(0x6E, 0x66),
2213
+					0x338C => array(0x3BC, 0x66), 0x338D => array(0x3BC, 0x67), 0x338E => array(0x6D, 0x67),
2214
+					0x338F => array(0x6B, 0x67), 0x3390 => array(0x68, 0x7A), 0x3391 => array(0x6B, 0x68, 0x7A),
2215
+					0x3392 => array(0x6D, 0x68, 0x7A), 0x3393 => array(0x67, 0x68, 0x7A), 0x3394 => array(0x74, 0x68, 0x7A),
2216
+					0x3395 => array(0x3BC, 0x6C), 0x3396 => array(0x6D, 0x6C), 0x3397 => array(0x64, 0x6C),
2217
+					0x3398 => array(0x6B, 0x6C), 0x3399 => array(0x66, 0x6D), 0x339A => array(0x6E, 0x6D),
2218
+					0x339B => array(0x3BC, 0x6D), 0x339C => array(0x6D, 0x6D), 0x339D => array(0x63, 0x6D),
2219
+					0x339E => array(0x6B, 0x6D), 0x339F => array(0x6D, 0x6D, 0x32), 0x33A0 => array(0x63, 0x6D, 0x32),
2220
+					0x33A1 => array(0x6D, 0x32), 0x33A2 => array(0x6B, 0x6D, 0x32), 0x33A3 => array(0x6D, 0x6D, 0x33),
2221
+					0x33A4 => array(0x63, 0x6D, 0x33), 0x33A5 => array(0x6D, 0x33), 0x33A6 => array(0x6B, 0x6D, 0x33),
2222
+					0x33A7 => array(0x6D, 0x2215, 0x73), 0x33A8 => array(0x6D, 0x2215, 0x73, 0x32), 0x33A9 => array(0x70, 0x61),
2223
+					0x33AA => array(0x6B, 0x70, 0x61), 0x33AB => array(0x6D, 0x70, 0x61), 0x33AC => array(0x67, 0x70, 0x61),
2224
+					0x33AD => array(0x72, 0x61, 0x64), 0x33AE => array(0x72, 0x61, 0x64, 0x2215, 0x73), 0x33AF => array(0x72, 0x61, 0x64, 0x2215, 0x73, 0x32),
2225
+					0x33B0 => array(0x70, 0x73), 0x33B1 => array(0x6E, 0x73), 0x33B2 => array(0x3BC, 0x73),
2226
+					0x33B3 => array(0x6D, 0x73), 0x33B4 => array(0x70, 0x76), 0x33B5 => array(0x6E, 0x76),
2227
+					0x33B6 => array(0x3BC, 0x76), 0x33B7 => array(0x6D, 0x76), 0x33B8 => array(0x6B, 0x76),
2228
+					0x33B9 => array(0x6D, 0x76), 0x33BA => array(0x70, 0x77), 0x33BB => array(0x6E, 0x77),
2229
+					0x33BC => array(0x3BC, 0x77), 0x33BD => array(0x6D, 0x77), 0x33BE => array(0x6B, 0x77),
2230
+					0x33BF => array(0x6D, 0x77), 0x33C0 => array(0x6B, 0x3C9), 0x33C1 => array(0x6D, 0x3C9),
2231
+					0x33C3 => array(0x62, 0x71), 0x33C4 => array(0x63, 0x63), 0x33C5 => array(0x63, 0x64),
2232
+					0x33C6 => array(0x63, 0x2215, 0x6B, 0x67), 0x33C8 => array(0x64, 0x62), 0x33C9 => array(0x67, 0x79),
2233
+					0x33CA => array(0x68, 0x61), 0x33CB => array(0x68, 0x70), 0x33CC => array(0x69, 0x6E),
2234
+					0x33CD => array(0x6B, 0x6B), 0x33CE => array(0x6B, 0x6D), 0x33CF => array(0x6B, 0x74),
2235
+					0x33D0 => array(0x6C, 0x6D), 0x33D1 => array(0x6C, 0x6E), 0x33D2 => array(0x6C, 0x6F, 0x67),
2236
+					0x33D3 => array(0x6C, 0x78), 0x33D4 => array(0x6D, 0x62), 0x33D5 => array(0x6D, 0x69, 0x6C),
2237
+					0x33D6 => array(0x6D, 0x6F, 0x6C), 0x33D7 => array(0x70, 0x68), 0x33D9 => array(0x70, 0x70, 0x6D),
2238
+					0x33DA => array(0x70, 0x72), 0x33DB => array(0x73, 0x72), 0x33DC => array(0x73, 0x76),
2239
+					0x33DD => array(0x77, 0x62), 0x33DE => array(0x76, 0x2215, 0x6D), 0x33DF => array(0x61, 0x2215, 0x6D),
2240
+					0x33E0 => array(0x31, 0x65E5), 0x33E1 => array(0x32, 0x65E5), 0x33E2 => array(0x33, 0x65E5),
2241
+					0x33E3 => array(0x34, 0x65E5), 0x33E4 => array(0x35, 0x65E5), 0x33E5 => array(0x36, 0x65E5),
2242
+					0x33E6 => array(0x37, 0x65E5), 0x33E7 => array(0x38, 0x65E5), 0x33E8 => array(0x39, 0x65E5),
2243
+					0x33E9 => array(0x31, 0x30, 0x65E5), 0x33EA => array(0x31, 0x31, 0x65E5), 0x33EB => array(0x31, 0x32, 0x65E5),
2244
+					0x33EC => array(0x31, 0x33, 0x65E5), 0x33ED => array(0x31, 0x34, 0x65E5), 0x33EE => array(0x31, 0x35, 0x65E5),
2245
+					0x33EF => array(0x31, 0x36, 0x65E5), 0x33F0 => array(0x31, 0x37, 0x65E5), 0x33F1 => array(0x31, 0x38, 0x65E5),
2246
+					0x33F2 => array(0x31, 0x39, 0x65E5), 0x33F3 => array(0x32, 0x30, 0x65E5), 0x33F4 => array(0x32, 0x31, 0x65E5),
2247
+					0x33F5 => array(0x32, 0x32, 0x65E5), 0x33F6 => array(0x32, 0x33, 0x65E5), 0x33F7 => array(0x32, 0x34, 0x65E5),
2248
+					0x33F8 => array(0x32, 0x35, 0x65E5), 0x33F9 => array(0x32, 0x36, 0x65E5), 0x33FA => array(0x32, 0x37, 0x65E5),
2249
+					0x33FB => array(0x32, 0x38, 0x65E5), 0x33FC => array(0x32, 0x39, 0x65E5), 0x33FD => array(0x33, 0x30, 0x65E5),
2250
+					0x33FE => array(0x33, 0x31, 0x65E5), 0x33FF => array(0x67, 0x61, 0x6C), 0xA640 => array(0xA641),
2251
+					0xA642 => array(0xA643), 0xA644 => array(0xA645), 0xA646 => array(0xA647),
2252
+					0xA648 => array(0xA649), 0xA64A => array(0xA64B), 0xA64C => array(0xA64D),
2253
+					0xA64E => array(0xA64F), 0xA650 => array(0xA651), 0xA652 => array(0xA653),
2254
+					0xA654 => array(0xA655), 0xA656 => array(0xA657), 0xA658 => array(0xA659),
2255
+					0xA65A => array(0xA65B), 0xA65C => array(0xA65D), 0xA65E => array(0xA65F),
2256
+					0xA660 => array(0xA661), 0xA662 => array(0xA663), 0xA664 => array(0xA665),
2257
+					0xA666 => array(0xA667), 0xA668 => array(0xA669), 0xA66A => array(0xA66B),
2258
+					0xA66C => array(0xA66D), 0xA680 => array(0xA681), 0xA682 => array(0xA683),
2259
+					0xA684 => array(0xA685), 0xA686 => array(0xA687), 0xA688 => array(0xA689),
2260
+					0xA68A => array(0xA68B), 0xA68C => array(0xA68D), 0xA68E => array(0xA68F),
2261
+					0xA690 => array(0xA691), 0xA692 => array(0xA693), 0xA694 => array(0xA695),
2262
+					0xA696 => array(0xA697), 0xA698 => array(0xA699), 0xA69A => array(0xA69B),
2263
+					0xA69C => array(0x44A), 0xA69D => array(0x44C), 0xA722 => array(0xA723),
2264
+					0xA724 => array(0xA725), 0xA726 => array(0xA727), 0xA728 => array(0xA729),
2265
+					0xA72A => array(0xA72B), 0xA72C => array(0xA72D), 0xA72E => array(0xA72F),
2266
+					0xA732 => array(0xA733), 0xA734 => array(0xA735), 0xA736 => array(0xA737),
2267
+					0xA738 => array(0xA739), 0xA73A => array(0xA73B), 0xA73C => array(0xA73D),
2268
+					0xA73E => array(0xA73F), 0xA740 => array(0xA741), 0xA742 => array(0xA743),
2269
+					0xA744 => array(0xA745), 0xA746 => array(0xA747), 0xA748 => array(0xA749),
2270
+					0xA74A => array(0xA74B), 0xA74C => array(0xA74D), 0xA74E => array(0xA74F),
2271
+					0xA750 => array(0xA751), 0xA752 => array(0xA753), 0xA754 => array(0xA755),
2272
+					0xA756 => array(0xA757), 0xA758 => array(0xA759), 0xA75A => array(0xA75B),
2273
+					0xA75C => array(0xA75D), 0xA75E => array(0xA75F), 0xA760 => array(0xA761),
2274
+					0xA762 => array(0xA763), 0xA764 => array(0xA765), 0xA766 => array(0xA767),
2275
+					0xA768 => array(0xA769), 0xA76A => array(0xA76B), 0xA76C => array(0xA76D),
2276
+					0xA76E => array(0xA76F), 0xA770 => array(0xA76F), 0xA779 => array(0xA77A),
2277
+					0xA77B => array(0xA77C), 0xA77D => array(0x1D79), 0xA77E => array(0xA77F),
2278
+					0xA780 => array(0xA781), 0xA782 => array(0xA783), 0xA784 => array(0xA785),
2279
+					0xA786 => array(0xA787), 0xA78B => array(0xA78C), 0xA78D => array(0x265),
2280
+					0xA790 => array(0xA791), 0xA792 => array(0xA793), 0xA796 => array(0xA797),
2281
+					0xA798 => array(0xA799), 0xA79A => array(0xA79B), 0xA79C => array(0xA79D),
2282
+					0xA79E => array(0xA79F), 0xA7A0 => array(0xA7A1), 0xA7A2 => array(0xA7A3),
2283
+					0xA7A4 => array(0xA7A5), 0xA7A6 => array(0xA7A7), 0xA7A8 => array(0xA7A9),
2284
+					0xA7AA => array(0x266), 0xA7AB => array(0x25C), 0xA7AC => array(0x261),
2285
+					0xA7AD => array(0x26C), 0xA7B0 => array(0x29E), 0xA7B1 => array(0x287),
2286
+					0xA7F8 => array(0x127), 0xA7F9 => array(0x153), 0xAB5C => array(0xA727),
2287
+					0xAB5D => array(0xAB37), 0xAB5E => array(0x26B), 0xAB5F => array(0xAB52),
2288
+					0xF900 => array(0x8C48), 0xF901 => array(0x66F4), 0xF902 => array(0x8ECA),
2289
+					0xF903 => array(0x8CC8), 0xF904 => array(0x6ED1), 0xF905 => array(0x4E32),
2290
+					0xF906 => array(0x53E5), 0xF907 => array(0x9F9C), 0xF908 => array(0x9F9C),
2291
+					0xF909 => array(0x5951), 0xF90A => array(0x91D1), 0xF90B => array(0x5587),
2292
+					0xF90C => array(0x5948), 0xF90D => array(0x61F6), 0xF90E => array(0x7669),
2293
+					0xF90F => array(0x7F85), 0xF910 => array(0x863F), 0xF911 => array(0x87BA),
2294
+					0xF912 => array(0x88F8), 0xF913 => array(0x908F), 0xF914 => array(0x6A02),
2295
+					0xF915 => array(0x6D1B), 0xF916 => array(0x70D9), 0xF917 => array(0x73DE),
2296
+					0xF918 => array(0x843D), 0xF919 => array(0x916A), 0xF91A => array(0x99F1),
2297
+					0xF91B => array(0x4E82), 0xF91C => array(0x5375), 0xF91D => array(0x6B04),
2298
+					0xF91E => array(0x721B), 0xF91F => array(0x862D), 0xF920 => array(0x9E1E),
2299
+					0xF921 => array(0x5D50), 0xF922 => array(0x6FEB), 0xF923 => array(0x85CD),
2300
+					0xF924 => array(0x8964), 0xF925 => array(0x62C9), 0xF926 => array(0x81D8),
2301
+					0xF927 => array(0x881F), 0xF928 => array(0x5ECA), 0xF929 => array(0x6717),
2302
+					0xF92A => array(0x6D6A), 0xF92B => array(0x72FC), 0xF92C => array(0x90CE),
2303
+					0xF92D => array(0x4F86), 0xF92E => array(0x51B7), 0xF92F => array(0x52DE),
2304
+					0xF930 => array(0x64C4), 0xF931 => array(0x6AD3), 0xF932 => array(0x7210),
2305
+					0xF933 => array(0x76E7), 0xF934 => array(0x8001), 0xF935 => array(0x8606),
2306
+					0xF936 => array(0x865C), 0xF937 => array(0x8DEF), 0xF938 => array(0x9732),
2307
+					0xF939 => array(0x9B6F), 0xF93A => array(0x9DFA), 0xF93B => array(0x788C),
2308
+					0xF93C => array(0x797F), 0xF93D => array(0x7DA0), 0xF93E => array(0x83C9),
2309
+					0xF93F => array(0x9304), 0xF940 => array(0x9E7F), 0xF941 => array(0x8AD6),
2310
+					0xF942 => array(0x58DF), 0xF943 => array(0x5F04), 0xF944 => array(0x7C60),
2311
+					0xF945 => array(0x807E), 0xF946 => array(0x7262), 0xF947 => array(0x78CA),
2312
+					0xF948 => array(0x8CC2), 0xF949 => array(0x96F7), 0xF94A => array(0x58D8),
2313
+					0xF94B => array(0x5C62), 0xF94C => array(0x6A13), 0xF94D => array(0x6DDA),
2314
+					0xF94E => array(0x6F0F), 0xF94F => array(0x7D2F), 0xF950 => array(0x7E37),
2315
+					0xF951 => array(0x964B), 0xF952 => array(0x52D2), 0xF953 => array(0x808B),
2316
+					0xF954 => array(0x51DC), 0xF955 => array(0x51CC), 0xF956 => array(0x7A1C),
2317
+					0xF957 => array(0x7DBE), 0xF958 => array(0x83F1), 0xF959 => array(0x9675),
2318
+					0xF95A => array(0x8B80), 0xF95B => array(0x62CF), 0xF95C => array(0x6A02),
2319
+					0xF95D => array(0x8AFE), 0xF95E => array(0x4E39), 0xF95F => array(0x5BE7),
2320
+					0xF960 => array(0x6012), 0xF961 => array(0x7387), 0xF962 => array(0x7570),
2321
+					0xF963 => array(0x5317), 0xF964 => array(0x78FB), 0xF965 => array(0x4FBF),
2322
+					0xF966 => array(0x5FA9), 0xF967 => array(0x4E0D), 0xF968 => array(0x6CCC),
2323
+					0xF969 => array(0x6578), 0xF96A => array(0x7D22), 0xF96B => array(0x53C3),
2324
+					0xF96C => array(0x585E), 0xF96D => array(0x7701), 0xF96E => array(0x8449),
2325
+					0xF96F => array(0x8AAA), 0xF970 => array(0x6BBA), 0xF971 => array(0x8FB0),
2326
+					0xF972 => array(0x6C88), 0xF973 => array(0x62FE), 0xF974 => array(0x82E5),
2327
+					0xF975 => array(0x63A0), 0xF976 => array(0x7565), 0xF977 => array(0x4EAE),
2328
+					0xF978 => array(0x5169), 0xF979 => array(0x51C9), 0xF97A => array(0x6881),
2329
+					0xF97B => array(0x7CE7), 0xF97C => array(0x826F), 0xF97D => array(0x8AD2),
2330
+					0xF97E => array(0x91CF), 0xF97F => array(0x52F5), 0xF980 => array(0x5442),
2331
+					0xF981 => array(0x5973), 0xF982 => array(0x5EEC), 0xF983 => array(0x65C5),
2332
+					0xF984 => array(0x6FFE), 0xF985 => array(0x792A), 0xF986 => array(0x95AD),
2333
+					0xF987 => array(0x9A6A), 0xF988 => array(0x9E97), 0xF989 => array(0x9ECE),
2334
+					0xF98A => array(0x529B), 0xF98B => array(0x66C6), 0xF98C => array(0x6B77),
2335
+					0xF98D => array(0x8F62), 0xF98E => array(0x5E74), 0xF98F => array(0x6190),
2336
+					0xF990 => array(0x6200), 0xF991 => array(0x649A), 0xF992 => array(0x6F23),
2337
+					0xF993 => array(0x7149), 0xF994 => array(0x7489), 0xF995 => array(0x79CA),
2338
+					0xF996 => array(0x7DF4), 0xF997 => array(0x806F), 0xF998 => array(0x8F26),
2339
+					0xF999 => array(0x84EE), 0xF99A => array(0x9023), 0xF99B => array(0x934A),
2340
+					0xF99C => array(0x5217), 0xF99D => array(0x52A3), 0xF99E => array(0x54BD),
2341
+					0xF99F => array(0x70C8), 0xF9A0 => array(0x88C2), 0xF9A1 => array(0x8AAA),
2342
+					0xF9A2 => array(0x5EC9), 0xF9A3 => array(0x5FF5), 0xF9A4 => array(0x637B),
2343
+					0xF9A5 => array(0x6BAE), 0xF9A6 => array(0x7C3E), 0xF9A7 => array(0x7375),
2344
+					0xF9A8 => array(0x4EE4), 0xF9A9 => array(0x56F9), 0xF9AA => array(0x5BE7),
2345
+					0xF9AB => array(0x5DBA), 0xF9AC => array(0x601C), 0xF9AD => array(0x73B2),
2346
+					0xF9AE => array(0x7469), 0xF9AF => array(0x7F9A), 0xF9B0 => array(0x8046),
2347
+					0xF9B1 => array(0x9234), 0xF9B2 => array(0x96F6), 0xF9B3 => array(0x9748),
2348
+					0xF9B4 => array(0x9818), 0xF9B5 => array(0x4F8B), 0xF9B6 => array(0x79AE),
2349
+					0xF9B7 => array(0x91B4), 0xF9B8 => array(0x96B8), 0xF9B9 => array(0x60E1),
2350
+					0xF9BA => array(0x4E86), 0xF9BB => array(0x50DA), 0xF9BC => array(0x5BEE),
2351
+					0xF9BD => array(0x5C3F), 0xF9BE => array(0x6599), 0xF9BF => array(0x6A02),
2352
+					0xF9C0 => array(0x71CE), 0xF9C1 => array(0x7642), 0xF9C2 => array(0x84FC),
2353
+					0xF9C3 => array(0x907C), 0xF9C4 => array(0x9F8D), 0xF9C5 => array(0x6688),
2354
+					0xF9C6 => array(0x962E), 0xF9C7 => array(0x5289), 0xF9C8 => array(0x677B),
2355
+					0xF9C9 => array(0x67F3), 0xF9CA => array(0x6D41), 0xF9CB => array(0x6E9C),
2356
+					0xF9CC => array(0x7409), 0xF9CD => array(0x7559), 0xF9CE => array(0x786B),
2357
+					0xF9CF => array(0x7D10), 0xF9D0 => array(0x985E), 0xF9D1 => array(0x516D),
2358
+					0xF9D2 => array(0x622E), 0xF9D3 => array(0x9678), 0xF9D4 => array(0x502B),
2359
+					0xF9D5 => array(0x5D19), 0xF9D6 => array(0x6DEA), 0xF9D7 => array(0x8F2A),
2360
+					0xF9D8 => array(0x5F8B), 0xF9D9 => array(0x6144), 0xF9DA => array(0x6817),
2361
+					0xF9DB => array(0x7387), 0xF9DC => array(0x9686), 0xF9DD => array(0x5229),
2362
+					0xF9DE => array(0x540F), 0xF9DF => array(0x5C65), 0xF9E0 => array(0x6613),
2363
+					0xF9E1 => array(0x674E), 0xF9E2 => array(0x68A8), 0xF9E3 => array(0x6CE5),
2364
+					0xF9E4 => array(0x7406), 0xF9E5 => array(0x75E2), 0xF9E6 => array(0x7F79),
2365
+					0xF9E7 => array(0x88CF), 0xF9E8 => array(0x88E1), 0xF9E9 => array(0x91CC),
2366
+					0xF9EA => array(0x96E2), 0xF9EB => array(0x533F), 0xF9EC => array(0x6EBA),
2367
+					0xF9ED => array(0x541D), 0xF9EE => array(0x71D0), 0xF9EF => array(0x7498),
2368
+					0xF9F0 => array(0x85FA), 0xF9F1 => array(0x96A3), 0xF9F2 => array(0x9C57),
2369
+					0xF9F3 => array(0x9E9F), 0xF9F4 => array(0x6797), 0xF9F5 => array(0x6DCB),
2370
+					0xF9F6 => array(0x81E8), 0xF9F7 => array(0x7ACB), 0xF9F8 => array(0x7B20),
2371
+					0xF9F9 => array(0x7C92), 0xF9FA => array(0x72C0), 0xF9FB => array(0x7099),
2372
+					0xF9FC => array(0x8B58), 0xF9FD => array(0x4EC0), 0xF9FE => array(0x8336),
2373
+					0xF9FF => array(0x523A), 0xFA00 => array(0x5207), 0xFA01 => array(0x5EA6),
2374
+					0xFA02 => array(0x62D3), 0xFA03 => array(0x7CD6), 0xFA04 => array(0x5B85),
2375
+					0xFA05 => array(0x6D1E), 0xFA06 => array(0x66B4), 0xFA07 => array(0x8F3B),
2376
+					0xFA08 => array(0x884C), 0xFA09 => array(0x964D), 0xFA0A => array(0x898B),
2377
+					0xFA0B => array(0x5ED3), 0xFA0C => array(0x5140), 0xFA0D => array(0x55C0),
2378
+					0xFA10 => array(0x585A), 0xFA12 => array(0x6674), 0xFA15 => array(0x51DE),
2379
+					0xFA16 => array(0x732A), 0xFA17 => array(0x76CA), 0xFA18 => array(0x793C),
2380
+					0xFA19 => array(0x795E), 0xFA1A => array(0x7965), 0xFA1B => array(0x798F),
2381
+					0xFA1C => array(0x9756), 0xFA1D => array(0x7CBE), 0xFA1E => array(0x7FBD),
2382
+					0xFA20 => array(0x8612), 0xFA22 => array(0x8AF8), 0xFA25 => array(0x9038),
2383
+					0xFA26 => array(0x90FD), 0xFA2A => array(0x98EF), 0xFA2B => array(0x98FC),
2384
+					0xFA2C => array(0x9928), 0xFA2D => array(0x9DB4), 0xFA2E => array(0x90DE),
2385
+					0xFA2F => array(0x96B7), 0xFA30 => array(0x4FAE), 0xFA31 => array(0x50E7),
2386
+					0xFA32 => array(0x514D), 0xFA33 => array(0x52C9), 0xFA34 => array(0x52E4),
2387
+					0xFA35 => array(0x5351), 0xFA36 => array(0x559D), 0xFA37 => array(0x5606),
2388
+					0xFA38 => array(0x5668), 0xFA39 => array(0x5840), 0xFA3A => array(0x58A8),
2389
+					0xFA3B => array(0x5C64), 0xFA3C => array(0x5C6E), 0xFA3D => array(0x6094),
2390
+					0xFA3E => array(0x6168), 0xFA3F => array(0x618E), 0xFA40 => array(0x61F2),
2391
+					0xFA41 => array(0x654F), 0xFA42 => array(0x65E2), 0xFA43 => array(0x6691),
2392
+					0xFA44 => array(0x6885), 0xFA45 => array(0x6D77), 0xFA46 => array(0x6E1A),
2393
+					0xFA47 => array(0x6F22), 0xFA48 => array(0x716E), 0xFA49 => array(0x722B),
2394
+					0xFA4A => array(0x7422), 0xFA4B => array(0x7891), 0xFA4C => array(0x793E),
2395
+					0xFA4D => array(0x7949), 0xFA4E => array(0x7948), 0xFA4F => array(0x7950),
2396
+					0xFA50 => array(0x7956), 0xFA51 => array(0x795D), 0xFA52 => array(0x798D),
2397
+					0xFA53 => array(0x798E), 0xFA54 => array(0x7A40), 0xFA55 => array(0x7A81),
2398
+					0xFA56 => array(0x7BC0), 0xFA57 => array(0x7DF4), 0xFA58 => array(0x7E09),
2399
+					0xFA59 => array(0x7E41), 0xFA5A => array(0x7F72), 0xFA5B => array(0x8005),
2400
+					0xFA5C => array(0x81ED), 0xFA5D => array(0x8279), 0xFA5E => array(0x8279),
2401
+					0xFA5F => array(0x8457), 0xFA60 => array(0x8910), 0xFA61 => array(0x8996),
2402
+					0xFA62 => array(0x8B01), 0xFA63 => array(0x8B39), 0xFA64 => array(0x8CD3),
2403
+					0xFA65 => array(0x8D08), 0xFA66 => array(0x8FB6), 0xFA67 => array(0x9038),
2404
+					0xFA68 => array(0x96E3), 0xFA69 => array(0x97FF), 0xFA6A => array(0x983B),
2405
+					0xFA6B => array(0x6075), 0xFA6C => array(0x242EE), 0xFA6D => array(0x8218),
2406
+					0xFA70 => array(0x4E26), 0xFA71 => array(0x51B5), 0xFA72 => array(0x5168),
2407
+					0xFA73 => array(0x4F80), 0xFA74 => array(0x5145), 0xFA75 => array(0x5180),
2408
+					0xFA76 => array(0x52C7), 0xFA77 => array(0x52FA), 0xFA78 => array(0x559D),
2409
+					0xFA79 => array(0x5555), 0xFA7A => array(0x5599), 0xFA7B => array(0x55E2),
2410
+					0xFA7C => array(0x585A), 0xFA7D => array(0x58B3), 0xFA7E => array(0x5944),
2411
+					0xFA7F => array(0x5954), 0xFA80 => array(0x5A62), 0xFA81 => array(0x5B28),
2412
+					0xFA82 => array(0x5ED2), 0xFA83 => array(0x5ED9), 0xFA84 => array(0x5F69),
2413
+					0xFA85 => array(0x5FAD), 0xFA86 => array(0x60D8), 0xFA87 => array(0x614E),
2414
+					0xFA88 => array(0x6108), 0xFA89 => array(0x618E), 0xFA8A => array(0x6160),
2415
+					0xFA8B => array(0x61F2), 0xFA8C => array(0x6234), 0xFA8D => array(0x63C4),
2416
+					0xFA8E => array(0x641C), 0xFA8F => array(0x6452), 0xFA90 => array(0x6556),
2417
+					0xFA91 => array(0x6674), 0xFA92 => array(0x6717), 0xFA93 => array(0x671B),
2418
+					0xFA94 => array(0x6756), 0xFA95 => array(0x6B79), 0xFA96 => array(0x6BBA),
2419
+					0xFA97 => array(0x6D41), 0xFA98 => array(0x6EDB), 0xFA99 => array(0x6ECB),
2420
+					0xFA9A => array(0x6F22), 0xFA9B => array(0x701E), 0xFA9C => array(0x716E),
2421
+					0xFA9D => array(0x77A7), 0xFA9E => array(0x7235), 0xFA9F => array(0x72AF),
2422
+					0xFAA0 => array(0x732A), 0xFAA1 => array(0x7471), 0xFAA2 => array(0x7506),
2423
+					0xFAA3 => array(0x753B), 0xFAA4 => array(0x761D), 0xFAA5 => array(0x761F),
2424
+					0xFAA6 => array(0x76CA), 0xFAA7 => array(0x76DB), 0xFAA8 => array(0x76F4),
2425
+					0xFAA9 => array(0x774A), 0xFAAA => array(0x7740), 0xFAAB => array(0x78CC),
2426
+					0xFAAC => array(0x7AB1), 0xFAAD => array(0x7BC0), 0xFAAE => array(0x7C7B),
2427
+					0xFAAF => array(0x7D5B), 0xFAB0 => array(0x7DF4), 0xFAB1 => array(0x7F3E),
2428
+					0xFAB2 => array(0x8005), 0xFAB3 => array(0x8352), 0xFAB4 => array(0x83EF),
2429
+					0xFAB5 => array(0x8779), 0xFAB6 => array(0x8941), 0xFAB7 => array(0x8986),
2430
+					0xFAB8 => array(0x8996), 0xFAB9 => array(0x8ABF), 0xFABA => array(0x8AF8),
2431
+					0xFABB => array(0x8ACB), 0xFABC => array(0x8B01), 0xFABD => array(0x8AFE),
2432
+					0xFABE => array(0x8AED), 0xFABF => array(0x8B39), 0xFAC0 => array(0x8B8A),
2433
+					0xFAC1 => array(0x8D08), 0xFAC2 => array(0x8F38), 0xFAC3 => array(0x9072),
2434
+					0xFAC4 => array(0x9199), 0xFAC5 => array(0x9276), 0xFAC6 => array(0x967C),
2435
+					0xFAC7 => array(0x96E3), 0xFAC8 => array(0x9756), 0xFAC9 => array(0x97DB),
2436
+					0xFACA => array(0x97FF), 0xFACB => array(0x980B), 0xFACC => array(0x983B),
2437
+					0xFACD => array(0x9B12), 0xFACE => array(0x9F9C), 0xFACF => array(0x2284A),
2438
+					0xFAD0 => array(0x22844), 0xFAD1 => array(0x233D5), 0xFAD2 => array(0x3B9D),
2439
+					0xFAD3 => array(0x4018), 0xFAD4 => array(0x4039), 0xFAD5 => array(0x25249),
2440
+					0xFAD6 => array(0x25CD0), 0xFAD7 => array(0x27ED3), 0xFAD8 => array(0x9F43),
2441
+					0xFAD9 => array(0x9F8E), 0xFB00 => array(0x66, 0x66), 0xFB01 => array(0x66, 0x69),
2442
+					0xFB02 => array(0x66, 0x6C), 0xFB03 => array(0x66, 0x66, 0x69), 0xFB04 => array(0x66, 0x66, 0x6C),
2443
+					0xFB05 => array(0x73, 0x74), 0xFB06 => array(0x73, 0x74), 0xFB13 => array(0x574, 0x576),
2444
+					0xFB14 => array(0x574, 0x565), 0xFB15 => array(0x574, 0x56B), 0xFB16 => array(0x57E, 0x576),
2445
+					0xFB17 => array(0x574, 0x56D), 0xFB1D => array(0x5D9, 0x5B4), 0xFB1F => array(0x5F2, 0x5B7),
2446
+					0xFB20 => array(0x5E2), 0xFB21 => array(0x5D0), 0xFB22 => array(0x5D3),
2447
+					0xFB23 => array(0x5D4), 0xFB24 => array(0x5DB), 0xFB25 => array(0x5DC),
2448
+					0xFB26 => array(0x5DD), 0xFB27 => array(0x5E8), 0xFB28 => array(0x5EA),
2449
+					0xFB2A => array(0x5E9, 0x5C1), 0xFB2B => array(0x5E9, 0x5C2), 0xFB2C => array(0x5E9, 0x5BC, 0x5C1),
2450
+					0xFB2D => array(0x5E9, 0x5BC, 0x5C2), 0xFB2E => array(0x5D0, 0x5B7), 0xFB2F => array(0x5D0, 0x5B8),
2451
+					0xFB30 => array(0x5D0, 0x5BC), 0xFB31 => array(0x5D1, 0x5BC), 0xFB32 => array(0x5D2, 0x5BC),
2452
+					0xFB33 => array(0x5D3, 0x5BC), 0xFB34 => array(0x5D4, 0x5BC), 0xFB35 => array(0x5D5, 0x5BC),
2453
+					0xFB36 => array(0x5D6, 0x5BC), 0xFB38 => array(0x5D8, 0x5BC), 0xFB39 => array(0x5D9, 0x5BC),
2454
+					0xFB3A => array(0x5DA, 0x5BC), 0xFB3B => array(0x5DB, 0x5BC), 0xFB3C => array(0x5DC, 0x5BC),
2455
+					0xFB3E => array(0x5DE, 0x5BC), 0xFB40 => array(0x5E0, 0x5BC), 0xFB41 => array(0x5E1, 0x5BC),
2456
+					0xFB43 => array(0x5E3, 0x5BC), 0xFB44 => array(0x5E4, 0x5BC), 0xFB46 => array(0x5E6, 0x5BC),
2457
+					0xFB47 => array(0x5E7, 0x5BC), 0xFB48 => array(0x5E8, 0x5BC), 0xFB49 => array(0x5E9, 0x5BC),
2458
+					0xFB4A => array(0x5EA, 0x5BC), 0xFB4B => array(0x5D5, 0x5B9), 0xFB4C => array(0x5D1, 0x5BF),
2459
+					0xFB4D => array(0x5DB, 0x5BF), 0xFB4E => array(0x5E4, 0x5BF), 0xFB4F => array(0x5D0, 0x5DC),
2460
+					0xFB50 => array(0x671), 0xFB51 => array(0x671), 0xFB52 => array(0x67B),
2461
+					0xFB53 => array(0x67B), 0xFB54 => array(0x67B), 0xFB55 => array(0x67B),
2462
+					0xFB56 => array(0x67E), 0xFB57 => array(0x67E), 0xFB58 => array(0x67E),
2463
+					0xFB59 => array(0x67E), 0xFB5A => array(0x680), 0xFB5B => array(0x680),
2464
+					0xFB5C => array(0x680), 0xFB5D => array(0x680), 0xFB5E => array(0x67A),
2465
+					0xFB5F => array(0x67A), 0xFB60 => array(0x67A), 0xFB61 => array(0x67A),
2466
+					0xFB62 => array(0x67F), 0xFB63 => array(0x67F), 0xFB64 => array(0x67F),
2467
+					0xFB65 => array(0x67F), 0xFB66 => array(0x679), 0xFB67 => array(0x679),
2468
+					0xFB68 => array(0x679), 0xFB69 => array(0x679), 0xFB6A => array(0x6A4),
2469
+					0xFB6B => array(0x6A4), 0xFB6C => array(0x6A4), 0xFB6D => array(0x6A4),
2470
+					0xFB6E => array(0x6A6), 0xFB6F => array(0x6A6), 0xFB70 => array(0x6A6),
2471
+					0xFB71 => array(0x6A6), 0xFB72 => array(0x684), 0xFB73 => array(0x684),
2472
+					0xFB74 => array(0x684), 0xFB75 => array(0x684), 0xFB76 => array(0x683),
2473
+					0xFB77 => array(0x683), 0xFB78 => array(0x683), 0xFB79 => array(0x683),
2474
+					0xFB7A => array(0x686), 0xFB7B => array(0x686), 0xFB7C => array(0x686),
2475
+					0xFB7D => array(0x686), 0xFB7E => array(0x687), 0xFB7F => array(0x687),
2476
+					0xFB80 => array(0x687), 0xFB81 => array(0x687), 0xFB82 => array(0x68D),
2477
+					0xFB83 => array(0x68D), 0xFB84 => array(0x68C), 0xFB85 => array(0x68C),
2478
+					0xFB86 => array(0x68E), 0xFB87 => array(0x68E), 0xFB88 => array(0x688),
2479
+					0xFB89 => array(0x688), 0xFB8A => array(0x698), 0xFB8B => array(0x698),
2480
+					0xFB8C => array(0x691), 0xFB8D => array(0x691), 0xFB8E => array(0x6A9),
2481
+					0xFB8F => array(0x6A9), 0xFB90 => array(0x6A9), 0xFB91 => array(0x6A9),
2482
+					0xFB92 => array(0x6AF), 0xFB93 => array(0x6AF), 0xFB94 => array(0x6AF),
2483
+					0xFB95 => array(0x6AF), 0xFB96 => array(0x6B3), 0xFB97 => array(0x6B3),
2484
+					0xFB98 => array(0x6B3), 0xFB99 => array(0x6B3), 0xFB9A => array(0x6B1),
2485
+					0xFB9B => array(0x6B1), 0xFB9C => array(0x6B1), 0xFB9D => array(0x6B1),
2486
+					0xFB9E => array(0x6BA), 0xFB9F => array(0x6BA), 0xFBA0 => array(0x6BB),
2487
+					0xFBA1 => array(0x6BB), 0xFBA2 => array(0x6BB), 0xFBA3 => array(0x6BB),
2488
+					0xFBA4 => array(0x6C0), 0xFBA5 => array(0x6C0), 0xFBA6 => array(0x6C1),
2489
+					0xFBA7 => array(0x6C1), 0xFBA8 => array(0x6C1), 0xFBA9 => array(0x6C1),
2490
+					0xFBAA => array(0x6BE), 0xFBAB => array(0x6BE), 0xFBAC => array(0x6BE),
2491
+					0xFBAD => array(0x6BE), 0xFBAE => array(0x6D2), 0xFBAF => array(0x6D2),
2492
+					0xFBB0 => array(0x6D3), 0xFBB1 => array(0x6D3), 0xFBD3 => array(0x6AD),
2493
+					0xFBD4 => array(0x6AD), 0xFBD5 => array(0x6AD), 0xFBD6 => array(0x6AD),
2494
+					0xFBD7 => array(0x6C7), 0xFBD8 => array(0x6C7), 0xFBD9 => array(0x6C6),
2495
+					0xFBDA => array(0x6C6), 0xFBDB => array(0x6C8), 0xFBDC => array(0x6C8),
2496
+					0xFBDD => array(0x6C7, 0x674), 0xFBDE => array(0x6CB), 0xFBDF => array(0x6CB),
2497
+					0xFBE0 => array(0x6C5), 0xFBE1 => array(0x6C5), 0xFBE2 => array(0x6C9),
2498
+					0xFBE3 => array(0x6C9), 0xFBE4 => array(0x6D0), 0xFBE5 => array(0x6D0),
2499
+					0xFBE6 => array(0x6D0), 0xFBE7 => array(0x6D0), 0xFBE8 => array(0x649),
2500
+					0xFBE9 => array(0x649), 0xFBEA => array(0x626, 0x627), 0xFBEB => array(0x626, 0x627),
2501
+					0xFBEC => array(0x626, 0x6D5), 0xFBED => array(0x626, 0x6D5), 0xFBEE => array(0x626, 0x648),
2502
+					0xFBEF => array(0x626, 0x648), 0xFBF0 => array(0x626, 0x6C7), 0xFBF1 => array(0x626, 0x6C7),
2503
+					0xFBF2 => array(0x626, 0x6C6), 0xFBF3 => array(0x626, 0x6C6), 0xFBF4 => array(0x626, 0x6C8),
2504
+					0xFBF5 => array(0x626, 0x6C8), 0xFBF6 => array(0x626, 0x6D0), 0xFBF7 => array(0x626, 0x6D0),
2505
+					0xFBF8 => array(0x626, 0x6D0), 0xFBF9 => array(0x626, 0x649), 0xFBFA => array(0x626, 0x649),
2506
+					0xFBFB => array(0x626, 0x649), 0xFBFC => array(0x6CC), 0xFBFD => array(0x6CC),
2507
+					0xFBFE => array(0x6CC), 0xFBFF => array(0x6CC), 0xFC00 => array(0x626, 0x62C),
2508
+					0xFC01 => array(0x626, 0x62D), 0xFC02 => array(0x626, 0x645), 0xFC03 => array(0x626, 0x649),
2509
+					0xFC04 => array(0x626, 0x64A), 0xFC05 => array(0x628, 0x62C), 0xFC06 => array(0x628, 0x62D),
2510
+					0xFC07 => array(0x628, 0x62E), 0xFC08 => array(0x628, 0x645), 0xFC09 => array(0x628, 0x649),
2511
+					0xFC0A => array(0x628, 0x64A), 0xFC0B => array(0x62A, 0x62C), 0xFC0C => array(0x62A, 0x62D),
2512
+					0xFC0D => array(0x62A, 0x62E), 0xFC0E => array(0x62A, 0x645), 0xFC0F => array(0x62A, 0x649),
2513
+					0xFC10 => array(0x62A, 0x64A), 0xFC11 => array(0x62B, 0x62C), 0xFC12 => array(0x62B, 0x645),
2514
+					0xFC13 => array(0x62B, 0x649), 0xFC14 => array(0x62B, 0x64A), 0xFC15 => array(0x62C, 0x62D),
2515
+					0xFC16 => array(0x62C, 0x645), 0xFC17 => array(0x62D, 0x62C), 0xFC18 => array(0x62D, 0x645),
2516
+					0xFC19 => array(0x62E, 0x62C), 0xFC1A => array(0x62E, 0x62D), 0xFC1B => array(0x62E, 0x645),
2517
+					0xFC1C => array(0x633, 0x62C), 0xFC1D => array(0x633, 0x62D), 0xFC1E => array(0x633, 0x62E),
2518
+					0xFC1F => array(0x633, 0x645), 0xFC20 => array(0x635, 0x62D), 0xFC21 => array(0x635, 0x645),
2519
+					0xFC22 => array(0x636, 0x62C), 0xFC23 => array(0x636, 0x62D), 0xFC24 => array(0x636, 0x62E),
2520
+					0xFC25 => array(0x636, 0x645), 0xFC26 => array(0x637, 0x62D), 0xFC27 => array(0x637, 0x645),
2521
+					0xFC28 => array(0x638, 0x645), 0xFC29 => array(0x639, 0x62C), 0xFC2A => array(0x639, 0x645),
2522
+					0xFC2B => array(0x63A, 0x62C), 0xFC2C => array(0x63A, 0x645), 0xFC2D => array(0x641, 0x62C),
2523
+					0xFC2E => array(0x641, 0x62D), 0xFC2F => array(0x641, 0x62E), 0xFC30 => array(0x641, 0x645),
2524
+					0xFC31 => array(0x641, 0x649), 0xFC32 => array(0x641, 0x64A), 0xFC33 => array(0x642, 0x62D),
2525
+					0xFC34 => array(0x642, 0x645), 0xFC35 => array(0x642, 0x649), 0xFC36 => array(0x642, 0x64A),
2526
+					0xFC37 => array(0x643, 0x627), 0xFC38 => array(0x643, 0x62C), 0xFC39 => array(0x643, 0x62D),
2527
+					0xFC3A => array(0x643, 0x62E), 0xFC3B => array(0x643, 0x644), 0xFC3C => array(0x643, 0x645),
2528
+					0xFC3D => array(0x643, 0x649), 0xFC3E => array(0x643, 0x64A), 0xFC3F => array(0x644, 0x62C),
2529
+					0xFC40 => array(0x644, 0x62D), 0xFC41 => array(0x644, 0x62E), 0xFC42 => array(0x644, 0x645),
2530
+					0xFC43 => array(0x644, 0x649), 0xFC44 => array(0x644, 0x64A), 0xFC45 => array(0x645, 0x62C),
2531
+					0xFC46 => array(0x645, 0x62D), 0xFC47 => array(0x645, 0x62E), 0xFC48 => array(0x645, 0x645),
2532
+					0xFC49 => array(0x645, 0x649), 0xFC4A => array(0x645, 0x64A), 0xFC4B => array(0x646, 0x62C),
2533
+					0xFC4C => array(0x646, 0x62D), 0xFC4D => array(0x646, 0x62E), 0xFC4E => array(0x646, 0x645),
2534
+					0xFC4F => array(0x646, 0x649), 0xFC50 => array(0x646, 0x64A), 0xFC51 => array(0x647, 0x62C),
2535
+					0xFC52 => array(0x647, 0x645), 0xFC53 => array(0x647, 0x649), 0xFC54 => array(0x647, 0x64A),
2536
+					0xFC55 => array(0x64A, 0x62C), 0xFC56 => array(0x64A, 0x62D), 0xFC57 => array(0x64A, 0x62E),
2537
+					0xFC58 => array(0x64A, 0x645), 0xFC59 => array(0x64A, 0x649), 0xFC5A => array(0x64A, 0x64A),
2538
+					0xFC5B => array(0x630, 0x670), 0xFC5C => array(0x631, 0x670), 0xFC5D => array(0x649, 0x670),
2539
+					0xFC64 => array(0x626, 0x631), 0xFC65 => array(0x626, 0x632), 0xFC66 => array(0x626, 0x645),
2540
+					0xFC67 => array(0x626, 0x646), 0xFC68 => array(0x626, 0x649), 0xFC69 => array(0x626, 0x64A),
2541
+					0xFC6A => array(0x628, 0x631), 0xFC6B => array(0x628, 0x632), 0xFC6C => array(0x628, 0x645),
2542
+					0xFC6D => array(0x628, 0x646), 0xFC6E => array(0x628, 0x649), 0xFC6F => array(0x628, 0x64A),
2543
+					0xFC70 => array(0x62A, 0x631), 0xFC71 => array(0x62A, 0x632), 0xFC72 => array(0x62A, 0x645),
2544
+					0xFC73 => array(0x62A, 0x646), 0xFC74 => array(0x62A, 0x649), 0xFC75 => array(0x62A, 0x64A),
2545
+					0xFC76 => array(0x62B, 0x631), 0xFC77 => array(0x62B, 0x632), 0xFC78 => array(0x62B, 0x645),
2546
+					0xFC79 => array(0x62B, 0x646), 0xFC7A => array(0x62B, 0x649), 0xFC7B => array(0x62B, 0x64A),
2547
+					0xFC7C => array(0x641, 0x649), 0xFC7D => array(0x641, 0x64A), 0xFC7E => array(0x642, 0x649),
2548
+					0xFC7F => array(0x642, 0x64A), 0xFC80 => array(0x643, 0x627), 0xFC81 => array(0x643, 0x644),
2549
+					0xFC82 => array(0x643, 0x645), 0xFC83 => array(0x643, 0x649), 0xFC84 => array(0x643, 0x64A),
2550
+					0xFC85 => array(0x644, 0x645), 0xFC86 => array(0x644, 0x649), 0xFC87 => array(0x644, 0x64A),
2551
+					0xFC88 => array(0x645, 0x627), 0xFC89 => array(0x645, 0x645), 0xFC8A => array(0x646, 0x631),
2552
+					0xFC8B => array(0x646, 0x632), 0xFC8C => array(0x646, 0x645), 0xFC8D => array(0x646, 0x646),
2553
+					0xFC8E => array(0x646, 0x649), 0xFC8F => array(0x646, 0x64A), 0xFC90 => array(0x649, 0x670),
2554
+					0xFC91 => array(0x64A, 0x631), 0xFC92 => array(0x64A, 0x632), 0xFC93 => array(0x64A, 0x645),
2555
+					0xFC94 => array(0x64A, 0x646), 0xFC95 => array(0x64A, 0x649), 0xFC96 => array(0x64A, 0x64A),
2556
+					0xFC97 => array(0x626, 0x62C), 0xFC98 => array(0x626, 0x62D), 0xFC99 => array(0x626, 0x62E),
2557
+					0xFC9A => array(0x626, 0x645), 0xFC9B => array(0x626, 0x647), 0xFC9C => array(0x628, 0x62C),
2558
+					0xFC9D => array(0x628, 0x62D), 0xFC9E => array(0x628, 0x62E), 0xFC9F => array(0x628, 0x645),
2559
+					0xFCA0 => array(0x628, 0x647), 0xFCA1 => array(0x62A, 0x62C), 0xFCA2 => array(0x62A, 0x62D),
2560
+					0xFCA3 => array(0x62A, 0x62E), 0xFCA4 => array(0x62A, 0x645), 0xFCA5 => array(0x62A, 0x647),
2561
+					0xFCA6 => array(0x62B, 0x645), 0xFCA7 => array(0x62C, 0x62D), 0xFCA8 => array(0x62C, 0x645),
2562
+					0xFCA9 => array(0x62D, 0x62C), 0xFCAA => array(0x62D, 0x645), 0xFCAB => array(0x62E, 0x62C),
2563
+					0xFCAC => array(0x62E, 0x645), 0xFCAD => array(0x633, 0x62C), 0xFCAE => array(0x633, 0x62D),
2564
+					0xFCAF => array(0x633, 0x62E), 0xFCB0 => array(0x633, 0x645), 0xFCB1 => array(0x635, 0x62D),
2565
+					0xFCB2 => array(0x635, 0x62E), 0xFCB3 => array(0x635, 0x645), 0xFCB4 => array(0x636, 0x62C),
2566
+					0xFCB5 => array(0x636, 0x62D), 0xFCB6 => array(0x636, 0x62E), 0xFCB7 => array(0x636, 0x645),
2567
+					0xFCB8 => array(0x637, 0x62D), 0xFCB9 => array(0x638, 0x645), 0xFCBA => array(0x639, 0x62C),
2568
+					0xFCBB => array(0x639, 0x645), 0xFCBC => array(0x63A, 0x62C), 0xFCBD => array(0x63A, 0x645),
2569
+					0xFCBE => array(0x641, 0x62C), 0xFCBF => array(0x641, 0x62D), 0xFCC0 => array(0x641, 0x62E),
2570
+					0xFCC1 => array(0x641, 0x645), 0xFCC2 => array(0x642, 0x62D), 0xFCC3 => array(0x642, 0x645),
2571
+					0xFCC4 => array(0x643, 0x62C), 0xFCC5 => array(0x643, 0x62D), 0xFCC6 => array(0x643, 0x62E),
2572
+					0xFCC7 => array(0x643, 0x644), 0xFCC8 => array(0x643, 0x645), 0xFCC9 => array(0x644, 0x62C),
2573
+					0xFCCA => array(0x644, 0x62D), 0xFCCB => array(0x644, 0x62E), 0xFCCC => array(0x644, 0x645),
2574
+					0xFCCD => array(0x644, 0x647), 0xFCCE => array(0x645, 0x62C), 0xFCCF => array(0x645, 0x62D),
2575
+					0xFCD0 => array(0x645, 0x62E), 0xFCD1 => array(0x645, 0x645), 0xFCD2 => array(0x646, 0x62C),
2576
+					0xFCD3 => array(0x646, 0x62D), 0xFCD4 => array(0x646, 0x62E), 0xFCD5 => array(0x646, 0x645),
2577
+					0xFCD6 => array(0x646, 0x647), 0xFCD7 => array(0x647, 0x62C), 0xFCD8 => array(0x647, 0x645),
2578
+					0xFCD9 => array(0x647, 0x670), 0xFCDA => array(0x64A, 0x62C), 0xFCDB => array(0x64A, 0x62D),
2579
+					0xFCDC => array(0x64A, 0x62E), 0xFCDD => array(0x64A, 0x645), 0xFCDE => array(0x64A, 0x647),
2580
+					0xFCDF => array(0x626, 0x645), 0xFCE0 => array(0x626, 0x647), 0xFCE1 => array(0x628, 0x645),
2581
+					0xFCE2 => array(0x628, 0x647), 0xFCE3 => array(0x62A, 0x645), 0xFCE4 => array(0x62A, 0x647),
2582
+					0xFCE5 => array(0x62B, 0x645), 0xFCE6 => array(0x62B, 0x647), 0xFCE7 => array(0x633, 0x645),
2583
+					0xFCE8 => array(0x633, 0x647), 0xFCE9 => array(0x634, 0x645), 0xFCEA => array(0x634, 0x647),
2584
+					0xFCEB => array(0x643, 0x644), 0xFCEC => array(0x643, 0x645), 0xFCED => array(0x644, 0x645),
2585
+					0xFCEE => array(0x646, 0x645), 0xFCEF => array(0x646, 0x647), 0xFCF0 => array(0x64A, 0x645),
2586
+					0xFCF1 => array(0x64A, 0x647), 0xFCF2 => array(0x640, 0x64E, 0x651), 0xFCF3 => array(0x640, 0x64F, 0x651),
2587
+					0xFCF4 => array(0x640, 0x650, 0x651), 0xFCF5 => array(0x637, 0x649), 0xFCF6 => array(0x637, 0x64A),
2588
+					0xFCF7 => array(0x639, 0x649), 0xFCF8 => array(0x639, 0x64A), 0xFCF9 => array(0x63A, 0x649),
2589
+					0xFCFA => array(0x63A, 0x64A), 0xFCFB => array(0x633, 0x649), 0xFCFC => array(0x633, 0x64A),
2590
+					0xFCFD => array(0x634, 0x649), 0xFCFE => array(0x634, 0x64A), 0xFCFF => array(0x62D, 0x649),
2591
+					0xFD00 => array(0x62D, 0x64A), 0xFD01 => array(0x62C, 0x649), 0xFD02 => array(0x62C, 0x64A),
2592
+					0xFD03 => array(0x62E, 0x649), 0xFD04 => array(0x62E, 0x64A), 0xFD05 => array(0x635, 0x649),
2593
+					0xFD06 => array(0x635, 0x64A), 0xFD07 => array(0x636, 0x649), 0xFD08 => array(0x636, 0x64A),
2594
+					0xFD09 => array(0x634, 0x62C), 0xFD0A => array(0x634, 0x62D), 0xFD0B => array(0x634, 0x62E),
2595
+					0xFD0C => array(0x634, 0x645), 0xFD0D => array(0x634, 0x631), 0xFD0E => array(0x633, 0x631),
2596
+					0xFD0F => array(0x635, 0x631), 0xFD10 => array(0x636, 0x631), 0xFD11 => array(0x637, 0x649),
2597
+					0xFD12 => array(0x637, 0x64A), 0xFD13 => array(0x639, 0x649), 0xFD14 => array(0x639, 0x64A),
2598
+					0xFD15 => array(0x63A, 0x649), 0xFD16 => array(0x63A, 0x64A), 0xFD17 => array(0x633, 0x649),
2599
+					0xFD18 => array(0x633, 0x64A), 0xFD19 => array(0x634, 0x649), 0xFD1A => array(0x634, 0x64A),
2600
+					0xFD1B => array(0x62D, 0x649), 0xFD1C => array(0x62D, 0x64A), 0xFD1D => array(0x62C, 0x649),
2601
+					0xFD1E => array(0x62C, 0x64A), 0xFD1F => array(0x62E, 0x649), 0xFD20 => array(0x62E, 0x64A),
2602
+					0xFD21 => array(0x635, 0x649), 0xFD22 => array(0x635, 0x64A), 0xFD23 => array(0x636, 0x649),
2603
+					0xFD24 => array(0x636, 0x64A), 0xFD25 => array(0x634, 0x62C), 0xFD26 => array(0x634, 0x62D),
2604
+					0xFD27 => array(0x634, 0x62E), 0xFD28 => array(0x634, 0x645), 0xFD29 => array(0x634, 0x631),
2605
+					0xFD2A => array(0x633, 0x631), 0xFD2B => array(0x635, 0x631), 0xFD2C => array(0x636, 0x631),
2606
+					0xFD2D => array(0x634, 0x62C), 0xFD2E => array(0x634, 0x62D), 0xFD2F => array(0x634, 0x62E),
2607
+					0xFD30 => array(0x634, 0x645), 0xFD31 => array(0x633, 0x647), 0xFD32 => array(0x634, 0x647),
2608
+					0xFD33 => array(0x637, 0x645), 0xFD34 => array(0x633, 0x62C), 0xFD35 => array(0x633, 0x62D),
2609
+					0xFD36 => array(0x633, 0x62E), 0xFD37 => array(0x634, 0x62C), 0xFD38 => array(0x634, 0x62D),
2610
+					0xFD39 => array(0x634, 0x62E), 0xFD3A => array(0x637, 0x645), 0xFD3B => array(0x638, 0x645),
2611
+					0xFD3C => array(0x627, 0x64B), 0xFD3D => array(0x627, 0x64B), 0xFD50 => array(0x62A, 0x62C, 0x645),
2612
+					0xFD51 => array(0x62A, 0x62D, 0x62C), 0xFD52 => array(0x62A, 0x62D, 0x62C), 0xFD53 => array(0x62A, 0x62D, 0x645),
2613
+					0xFD54 => array(0x62A, 0x62E, 0x645), 0xFD55 => array(0x62A, 0x645, 0x62C), 0xFD56 => array(0x62A, 0x645, 0x62D),
2614
+					0xFD57 => array(0x62A, 0x645, 0x62E), 0xFD58 => array(0x62C, 0x645, 0x62D), 0xFD59 => array(0x62C, 0x645, 0x62D),
2615
+					0xFD5A => array(0x62D, 0x645, 0x64A), 0xFD5B => array(0x62D, 0x645, 0x649), 0xFD5C => array(0x633, 0x62D, 0x62C),
2616
+					0xFD5D => array(0x633, 0x62C, 0x62D), 0xFD5E => array(0x633, 0x62C, 0x649), 0xFD5F => array(0x633, 0x645, 0x62D),
2617
+					0xFD60 => array(0x633, 0x645, 0x62D), 0xFD61 => array(0x633, 0x645, 0x62C), 0xFD62 => array(0x633, 0x645, 0x645),
2618
+					0xFD63 => array(0x633, 0x645, 0x645), 0xFD64 => array(0x635, 0x62D, 0x62D), 0xFD65 => array(0x635, 0x62D, 0x62D),
2619
+					0xFD66 => array(0x635, 0x645, 0x645), 0xFD67 => array(0x634, 0x62D, 0x645), 0xFD68 => array(0x634, 0x62D, 0x645),
2620
+					0xFD69 => array(0x634, 0x62C, 0x64A), 0xFD6A => array(0x634, 0x645, 0x62E), 0xFD6B => array(0x634, 0x645, 0x62E),
2621
+					0xFD6C => array(0x634, 0x645, 0x645), 0xFD6D => array(0x634, 0x645, 0x645), 0xFD6E => array(0x636, 0x62D, 0x649),
2622
+					0xFD6F => array(0x636, 0x62E, 0x645), 0xFD70 => array(0x636, 0x62E, 0x645), 0xFD71 => array(0x637, 0x645, 0x62D),
2623
+					0xFD72 => array(0x637, 0x645, 0x62D), 0xFD73 => array(0x637, 0x645, 0x645), 0xFD74 => array(0x637, 0x645, 0x64A),
2624
+					0xFD75 => array(0x639, 0x62C, 0x645), 0xFD76 => array(0x639, 0x645, 0x645), 0xFD77 => array(0x639, 0x645, 0x645),
2625
+					0xFD78 => array(0x639, 0x645, 0x649), 0xFD79 => array(0x63A, 0x645, 0x645), 0xFD7A => array(0x63A, 0x645, 0x64A),
2626
+					0xFD7B => array(0x63A, 0x645, 0x649), 0xFD7C => array(0x641, 0x62E, 0x645), 0xFD7D => array(0x641, 0x62E, 0x645),
2627
+					0xFD7E => array(0x642, 0x645, 0x62D), 0xFD7F => array(0x642, 0x645, 0x645), 0xFD80 => array(0x644, 0x62D, 0x645),
2628
+					0xFD81 => array(0x644, 0x62D, 0x64A), 0xFD82 => array(0x644, 0x62D, 0x649), 0xFD83 => array(0x644, 0x62C, 0x62C),
2629
+					0xFD84 => array(0x644, 0x62C, 0x62C), 0xFD85 => array(0x644, 0x62E, 0x645), 0xFD86 => array(0x644, 0x62E, 0x645),
2630
+					0xFD87 => array(0x644, 0x645, 0x62D), 0xFD88 => array(0x644, 0x645, 0x62D), 0xFD89 => array(0x645, 0x62D, 0x62C),
2631
+					0xFD8A => array(0x645, 0x62D, 0x645), 0xFD8B => array(0x645, 0x62D, 0x64A), 0xFD8C => array(0x645, 0x62C, 0x62D),
2632
+					0xFD8D => array(0x645, 0x62C, 0x645), 0xFD8E => array(0x645, 0x62E, 0x62C), 0xFD8F => array(0x645, 0x62E, 0x645),
2633
+					0xFD92 => array(0x645, 0x62C, 0x62E), 0xFD93 => array(0x647, 0x645, 0x62C), 0xFD94 => array(0x647, 0x645, 0x645),
2634
+					0xFD95 => array(0x646, 0x62D, 0x645), 0xFD96 => array(0x646, 0x62D, 0x649), 0xFD97 => array(0x646, 0x62C, 0x645),
2635
+					0xFD98 => array(0x646, 0x62C, 0x645), 0xFD99 => array(0x646, 0x62C, 0x649), 0xFD9A => array(0x646, 0x645, 0x64A),
2636
+					0xFD9B => array(0x646, 0x645, 0x649), 0xFD9C => array(0x64A, 0x645, 0x645), 0xFD9D => array(0x64A, 0x645, 0x645),
2637
+					0xFD9E => array(0x628, 0x62E, 0x64A), 0xFD9F => array(0x62A, 0x62C, 0x64A), 0xFDA0 => array(0x62A, 0x62C, 0x649),
2638
+					0xFDA1 => array(0x62A, 0x62E, 0x64A), 0xFDA2 => array(0x62A, 0x62E, 0x649), 0xFDA3 => array(0x62A, 0x645, 0x64A),
2639
+					0xFDA4 => array(0x62A, 0x645, 0x649), 0xFDA5 => array(0x62C, 0x645, 0x64A), 0xFDA6 => array(0x62C, 0x62D, 0x649),
2640
+					0xFDA7 => array(0x62C, 0x645, 0x649), 0xFDA8 => array(0x633, 0x62E, 0x649), 0xFDA9 => array(0x635, 0x62D, 0x64A),
2641
+					0xFDAA => array(0x634, 0x62D, 0x64A), 0xFDAB => array(0x636, 0x62D, 0x64A), 0xFDAC => array(0x644, 0x62C, 0x64A),
2642
+					0xFDAD => array(0x644, 0x645, 0x64A), 0xFDAE => array(0x64A, 0x62D, 0x64A), 0xFDAF => array(0x64A, 0x62C, 0x64A),
2643
+					0xFDB0 => array(0x64A, 0x645, 0x64A), 0xFDB1 => array(0x645, 0x645, 0x64A), 0xFDB2 => array(0x642, 0x645, 0x64A),
2644
+					0xFDB3 => array(0x646, 0x62D, 0x64A), 0xFDB4 => array(0x642, 0x645, 0x62D), 0xFDB5 => array(0x644, 0x62D, 0x645),
2645
+					0xFDB6 => array(0x639, 0x645, 0x64A), 0xFDB7 => array(0x643, 0x645, 0x64A), 0xFDB8 => array(0x646, 0x62C, 0x62D),
2646
+					0xFDB9 => array(0x645, 0x62E, 0x64A), 0xFDBA => array(0x644, 0x62C, 0x645), 0xFDBB => array(0x643, 0x645, 0x645),
2647
+					0xFDBC => array(0x644, 0x62C, 0x645), 0xFDBD => array(0x646, 0x62C, 0x62D), 0xFDBE => array(0x62C, 0x62D, 0x64A),
2648
+					0xFDBF => array(0x62D, 0x62C, 0x64A), 0xFDC0 => array(0x645, 0x62C, 0x64A), 0xFDC1 => array(0x641, 0x645, 0x64A),
2649
+					0xFDC2 => array(0x628, 0x62D, 0x64A), 0xFDC3 => array(0x643, 0x645, 0x645), 0xFDC4 => array(0x639, 0x62C, 0x645),
2650
+					0xFDC5 => array(0x635, 0x645, 0x645), 0xFDC6 => array(0x633, 0x62E, 0x64A), 0xFDC7 => array(0x646, 0x62C, 0x64A),
2651
+					0xFDF0 => array(0x635, 0x644, 0x6D2), 0xFDF1 => array(0x642, 0x644, 0x6D2), 0xFDF2 => array(0x627, 0x644, 0x644, 0x647),
2652
+					0xFDF3 => array(0x627, 0x643, 0x628, 0x631), 0xFDF4 => array(0x645, 0x62D, 0x645, 0x62F), 0xFDF5 => array(0x635, 0x644, 0x639, 0x645),
2653
+					0xFDF6 => array(0x631, 0x633, 0x648, 0x644), 0xFDF7 => array(0x639, 0x644, 0x64A, 0x647), 0xFDF8 => array(0x648, 0x633, 0x644, 0x645),
2654
+					0xFDF9 => array(0x635, 0x644, 0x649), 0xFDFC => array(0x631, 0x6CC, 0x627, 0x644), 0xFE11 => array(0x3001),
2655
+					0xFE17 => array(0x3016), 0xFE18 => array(0x3017), 0xFE31 => array(0x2014),
2656
+					0xFE32 => array(0x2013), 0xFE39 => array(0x3014), 0xFE3A => array(0x3015),
2657
+					0xFE3B => array(0x3010), 0xFE3C => array(0x3011), 0xFE3D => array(0x300A),
2658
+					0xFE3E => array(0x300B), 0xFE3F => array(0x3008), 0xFE40 => array(0x3009),
2659
+					0xFE41 => array(0x300C), 0xFE42 => array(0x300D), 0xFE43 => array(0x300E),
2660
+					0xFE44 => array(0x300F), 0xFE51 => array(0x3001), 0xFE58 => array(0x2014),
2661
+					0xFE5D => array(0x3014), 0xFE5E => array(0x3015), 0xFE63 => array(0x2D),
2662
+					0xFE71 => array(0x640, 0x64B), 0xFE77 => array(0x640, 0x64E), 0xFE79 => array(0x640, 0x64F),
2663
+					0xFE7B => array(0x640, 0x650), 0xFE7D => array(0x640, 0x651), 0xFE7F => array(0x640, 0x652),
2664
+					0xFE80 => array(0x621), 0xFE81 => array(0x622), 0xFE82 => array(0x622),
2665
+					0xFE83 => array(0x623), 0xFE84 => array(0x623), 0xFE85 => array(0x624),
2666
+					0xFE86 => array(0x624), 0xFE87 => array(0x625), 0xFE88 => array(0x625),
2667
+					0xFE89 => array(0x626), 0xFE8A => array(0x626), 0xFE8B => array(0x626),
2668
+					0xFE8C => array(0x626), 0xFE8D => array(0x627), 0xFE8E => array(0x627),
2669
+					0xFE8F => array(0x628), 0xFE90 => array(0x628), 0xFE91 => array(0x628),
2670
+					0xFE92 => array(0x628), 0xFE93 => array(0x629), 0xFE94 => array(0x629),
2671
+					0xFE95 => array(0x62A), 0xFE96 => array(0x62A), 0xFE97 => array(0x62A),
2672
+					0xFE98 => array(0x62A), 0xFE99 => array(0x62B), 0xFE9A => array(0x62B),
2673
+					0xFE9B => array(0x62B), 0xFE9C => array(0x62B), 0xFE9D => array(0x62C),
2674
+					0xFE9E => array(0x62C), 0xFE9F => array(0x62C), 0xFEA0 => array(0x62C),
2675
+					0xFEA1 => array(0x62D), 0xFEA2 => array(0x62D), 0xFEA3 => array(0x62D),
2676
+					0xFEA4 => array(0x62D), 0xFEA5 => array(0x62E), 0xFEA6 => array(0x62E),
2677
+					0xFEA7 => array(0x62E), 0xFEA8 => array(0x62E), 0xFEA9 => array(0x62F),
2678
+					0xFEAA => array(0x62F), 0xFEAB => array(0x630), 0xFEAC => array(0x630),
2679
+					0xFEAD => array(0x631), 0xFEAE => array(0x631), 0xFEAF => array(0x632),
2680
+					0xFEB0 => array(0x632), 0xFEB1 => array(0x633), 0xFEB2 => array(0x633),
2681
+					0xFEB3 => array(0x633), 0xFEB4 => array(0x633), 0xFEB5 => array(0x634),
2682
+					0xFEB6 => array(0x634), 0xFEB7 => array(0x634), 0xFEB8 => array(0x634),
2683
+					0xFEB9 => array(0x635), 0xFEBA => array(0x635), 0xFEBB => array(0x635),
2684
+					0xFEBC => array(0x635), 0xFEBD => array(0x636), 0xFEBE => array(0x636),
2685
+					0xFEBF => array(0x636), 0xFEC0 => array(0x636), 0xFEC1 => array(0x637),
2686
+					0xFEC2 => array(0x637), 0xFEC3 => array(0x637), 0xFEC4 => array(0x637),
2687
+					0xFEC5 => array(0x638), 0xFEC6 => array(0x638), 0xFEC7 => array(0x638),
2688
+					0xFEC8 => array(0x638), 0xFEC9 => array(0x639), 0xFECA => array(0x639),
2689
+					0xFECB => array(0x639), 0xFECC => array(0x639), 0xFECD => array(0x63A),
2690
+					0xFECE => array(0x63A), 0xFECF => array(0x63A), 0xFED0 => array(0x63A),
2691
+					0xFED1 => array(0x641), 0xFED2 => array(0x641), 0xFED3 => array(0x641),
2692
+					0xFED4 => array(0x641), 0xFED5 => array(0x642), 0xFED6 => array(0x642),
2693
+					0xFED7 => array(0x642), 0xFED8 => array(0x642), 0xFED9 => array(0x643),
2694
+					0xFEDA => array(0x643), 0xFEDB => array(0x643), 0xFEDC => array(0x643),
2695
+					0xFEDD => array(0x644), 0xFEDE => array(0x644), 0xFEDF => array(0x644),
2696
+					0xFEE0 => array(0x644), 0xFEE1 => array(0x645), 0xFEE2 => array(0x645),
2697
+					0xFEE3 => array(0x645), 0xFEE4 => array(0x645), 0xFEE5 => array(0x646),
2698
+					0xFEE6 => array(0x646), 0xFEE7 => array(0x646), 0xFEE8 => array(0x646),
2699
+					0xFEE9 => array(0x647), 0xFEEA => array(0x647), 0xFEEB => array(0x647),
2700
+					0xFEEC => array(0x647), 0xFEED => array(0x648), 0xFEEE => array(0x648),
2701
+					0xFEEF => array(0x649), 0xFEF0 => array(0x649), 0xFEF1 => array(0x64A),
2702
+					0xFEF2 => array(0x64A), 0xFEF3 => array(0x64A), 0xFEF4 => array(0x64A),
2703
+					0xFEF5 => array(0x644, 0x622), 0xFEF6 => array(0x644, 0x622), 0xFEF7 => array(0x644, 0x623),
2704
+					0xFEF8 => array(0x644, 0x623), 0xFEF9 => array(0x644, 0x625), 0xFEFA => array(0x644, 0x625),
2705
+					0xFEFB => array(0x644, 0x627), 0xFEFC => array(0x644, 0x627), 0xFF0D => array(0x2D),
2706
+					0xFF0E => array(0x2E), 0xFF10 => array(0x30), 0xFF11 => array(0x31),
2707
+					0xFF12 => array(0x32), 0xFF13 => array(0x33), 0xFF14 => array(0x34),
2708
+					0xFF15 => array(0x35), 0xFF16 => array(0x36), 0xFF17 => array(0x37),
2709
+					0xFF18 => array(0x38), 0xFF19 => array(0x39), 0xFF21 => array(0x61),
2710
+					0xFF22 => array(0x62), 0xFF23 => array(0x63), 0xFF24 => array(0x64),
2711
+					0xFF25 => array(0x65), 0xFF26 => array(0x66), 0xFF27 => array(0x67),
2712
+					0xFF28 => array(0x68), 0xFF29 => array(0x69), 0xFF2A => array(0x6A),
2713
+					0xFF2B => array(0x6B), 0xFF2C => array(0x6C), 0xFF2D => array(0x6D),
2714
+					0xFF2E => array(0x6E), 0xFF2F => array(0x6F), 0xFF30 => array(0x70),
2715
+					0xFF31 => array(0x71), 0xFF32 => array(0x72), 0xFF33 => array(0x73),
2716
+					0xFF34 => array(0x74), 0xFF35 => array(0x75), 0xFF36 => array(0x76),
2717
+					0xFF37 => array(0x77), 0xFF38 => array(0x78), 0xFF39 => array(0x79),
2718
+					0xFF3A => array(0x7A), 0xFF41 => array(0x61), 0xFF42 => array(0x62),
2719
+					0xFF43 => array(0x63), 0xFF44 => array(0x64), 0xFF45 => array(0x65),
2720
+					0xFF46 => array(0x66), 0xFF47 => array(0x67), 0xFF48 => array(0x68),
2721
+					0xFF49 => array(0x69), 0xFF4A => array(0x6A), 0xFF4B => array(0x6B),
2722
+					0xFF4C => array(0x6C), 0xFF4D => array(0x6D), 0xFF4E => array(0x6E),
2723
+					0xFF4F => array(0x6F), 0xFF50 => array(0x70), 0xFF51 => array(0x71),
2724
+					0xFF52 => array(0x72), 0xFF53 => array(0x73), 0xFF54 => array(0x74),
2725
+					0xFF55 => array(0x75), 0xFF56 => array(0x76), 0xFF57 => array(0x77),
2726
+					0xFF58 => array(0x78), 0xFF59 => array(0x79), 0xFF5A => array(0x7A),
2727
+					0xFF5F => array(0x2985), 0xFF60 => array(0x2986), 0xFF61 => array(0x2E),
2728
+					0xFF62 => array(0x300C), 0xFF63 => array(0x300D), 0xFF64 => array(0x3001),
2729
+					0xFF65 => array(0x30FB), 0xFF66 => array(0x30F2), 0xFF67 => array(0x30A1),
2730
+					0xFF68 => array(0x30A3), 0xFF69 => array(0x30A5), 0xFF6A => array(0x30A7),
2731
+					0xFF6B => array(0x30A9), 0xFF6C => array(0x30E3), 0xFF6D => array(0x30E5),
2732
+					0xFF6E => array(0x30E7), 0xFF6F => array(0x30C3), 0xFF70 => array(0x30FC),
2733
+					0xFF71 => array(0x30A2), 0xFF72 => array(0x30A4), 0xFF73 => array(0x30A6),
2734
+					0xFF74 => array(0x30A8), 0xFF75 => array(0x30AA), 0xFF76 => array(0x30AB),
2735
+					0xFF77 => array(0x30AD), 0xFF78 => array(0x30AF), 0xFF79 => array(0x30B1),
2736
+					0xFF7A => array(0x30B3), 0xFF7B => array(0x30B5), 0xFF7C => array(0x30B7),
2737
+					0xFF7D => array(0x30B9), 0xFF7E => array(0x30BB), 0xFF7F => array(0x30BD),
2738
+					0xFF80 => array(0x30BF), 0xFF81 => array(0x30C1), 0xFF82 => array(0x30C4),
2739
+					0xFF83 => array(0x30C6), 0xFF84 => array(0x30C8), 0xFF85 => array(0x30CA),
2740
+					0xFF86 => array(0x30CB), 0xFF87 => array(0x30CC), 0xFF88 => array(0x30CD),
2741
+					0xFF89 => array(0x30CE), 0xFF8A => array(0x30CF), 0xFF8B => array(0x30D2),
2742
+					0xFF8C => array(0x30D5), 0xFF8D => array(0x30D8), 0xFF8E => array(0x30DB),
2743
+					0xFF8F => array(0x30DE), 0xFF90 => array(0x30DF), 0xFF91 => array(0x30E0),
2744
+					0xFF92 => array(0x30E1), 0xFF93 => array(0x30E2), 0xFF94 => array(0x30E4),
2745
+					0xFF95 => array(0x30E6), 0xFF96 => array(0x30E8), 0xFF97 => array(0x30E9),
2746
+					0xFF98 => array(0x30EA), 0xFF99 => array(0x30EB), 0xFF9A => array(0x30EC),
2747
+					0xFF9B => array(0x30ED), 0xFF9C => array(0x30EF), 0xFF9D => array(0x30F3),
2748
+					0xFF9E => array(0x3099), 0xFF9F => array(0x309A), 0xFFA1 => array(0x1100),
2749
+					0xFFA2 => array(0x1101), 0xFFA3 => array(0x11AA), 0xFFA4 => array(0x1102),
2750
+					0xFFA5 => array(0x11AC), 0xFFA6 => array(0x11AD), 0xFFA7 => array(0x1103),
2751
+					0xFFA8 => array(0x1104), 0xFFA9 => array(0x1105), 0xFFAA => array(0x11B0),
2752
+					0xFFAB => array(0x11B1), 0xFFAC => array(0x11B2), 0xFFAD => array(0x11B3),
2753
+					0xFFAE => array(0x11B4), 0xFFAF => array(0x11B5), 0xFFB0 => array(0x111A),
2754
+					0xFFB1 => array(0x1106), 0xFFB2 => array(0x1107), 0xFFB3 => array(0x1108),
2755
+					0xFFB4 => array(0x1121), 0xFFB5 => array(0x1109), 0xFFB6 => array(0x110A),
2756
+					0xFFB7 => array(0x110B), 0xFFB8 => array(0x110C), 0xFFB9 => array(0x110D),
2757
+					0xFFBA => array(0x110E), 0xFFBB => array(0x110F), 0xFFBC => array(0x1110),
2758
+					0xFFBD => array(0x1111), 0xFFBE => array(0x1112), 0xFFC2 => array(0x1161),
2759
+					0xFFC3 => array(0x1162), 0xFFC4 => array(0x1163), 0xFFC5 => array(0x1164),
2760
+					0xFFC6 => array(0x1165), 0xFFC7 => array(0x1166), 0xFFCA => array(0x1167),
2761
+					0xFFCB => array(0x1168), 0xFFCC => array(0x1169), 0xFFCD => array(0x116A),
2762
+					0xFFCE => array(0x116B), 0xFFCF => array(0x116C), 0xFFD2 => array(0x116D),
2763
+					0xFFD3 => array(0x116E), 0xFFD4 => array(0x116F), 0xFFD5 => array(0x1170),
2764
+					0xFFD6 => array(0x1171), 0xFFD7 => array(0x1172), 0xFFDA => array(0x1173),
2765
+					0xFFDB => array(0x1174), 0xFFDC => array(0x1175), 0xFFE0 => array(0xA2),
2766
+					0xFFE1 => array(0xA3), 0xFFE2 => array(0xAC), 0xFFE4 => array(0xA6),
2767
+					0xFFE5 => array(0xA5), 0xFFE6 => array(0x20A9), 0xFFE8 => array(0x2502),
2768
+					0xFFE9 => array(0x2190), 0xFFEA => array(0x2191), 0xFFEB => array(0x2192),
2769
+					0xFFEC => array(0x2193), 0xFFED => array(0x25A0), 0xFFEE => array(0x25CB),
2770
+					0x10400 => array(0x10428), 0x10401 => array(0x10429), 0x10402 => array(0x1042A),
2771
+					0x10403 => array(0x1042B), 0x10404 => array(0x1042C), 0x10405 => array(0x1042D),
2772
+					0x10406 => array(0x1042E), 0x10407 => array(0x1042F), 0x10408 => array(0x10430),
2773
+					0x10409 => array(0x10431), 0x1040A => array(0x10432), 0x1040B => array(0x10433),
2774
+					0x1040C => array(0x10434), 0x1040D => array(0x10435), 0x1040E => array(0x10436),
2775
+					0x1040F => array(0x10437), 0x10410 => array(0x10438), 0x10411 => array(0x10439),
2776
+					0x10412 => array(0x1043A), 0x10413 => array(0x1043B), 0x10414 => array(0x1043C),
2777
+					0x10415 => array(0x1043D), 0x10416 => array(0x1043E), 0x10417 => array(0x1043F),
2778
+					0x10418 => array(0x10440), 0x10419 => array(0x10441), 0x1041A => array(0x10442),
2779
+					0x1041B => array(0x10443), 0x1041C => array(0x10444), 0x1041D => array(0x10445),
2780
+					0x1041E => array(0x10446), 0x1041F => array(0x10447), 0x10420 => array(0x10448),
2781
+					0x10421 => array(0x10449), 0x10422 => array(0x1044A), 0x10423 => array(0x1044B),
2782
+					0x10424 => array(0x1044C), 0x10425 => array(0x1044D), 0x10426 => array(0x1044E),
2783
+					0x10427 => array(0x1044F), 0x118A0 => array(0x118C0), 0x118A1 => array(0x118C1),
2784
+					0x118A2 => array(0x118C2), 0x118A3 => array(0x118C3), 0x118A4 => array(0x118C4),
2785
+					0x118A5 => array(0x118C5), 0x118A6 => array(0x118C6), 0x118A7 => array(0x118C7),
2786
+					0x118A8 => array(0x118C8), 0x118A9 => array(0x118C9), 0x118AA => array(0x118CA),
2787
+					0x118AB => array(0x118CB), 0x118AC => array(0x118CC), 0x118AD => array(0x118CD),
2788
+					0x118AE => array(0x118CE), 0x118AF => array(0x118CF), 0x118B0 => array(0x118D0),
2789
+					0x118B1 => array(0x118D1), 0x118B2 => array(0x118D2), 0x118B3 => array(0x118D3),
2790
+					0x118B4 => array(0x118D4), 0x118B5 => array(0x118D5), 0x118B6 => array(0x118D6),
2791
+					0x118B7 => array(0x118D7), 0x118B8 => array(0x118D8), 0x118B9 => array(0x118D9),
2792
+					0x118BA => array(0x118DA), 0x118BB => array(0x118DB), 0x118BC => array(0x118DC),
2793
+					0x118BD => array(0x118DD), 0x118BE => array(0x118DE), 0x118BF => array(0x118DF),
2794
+					0x1D15E => array(0x1D157, 0x1D165), 0x1D15F => array(0x1D158, 0x1D165), 0x1D160 => array(0x1D158, 0x1D165, 0x1D16E),
2795
+					0x1D161 => array(0x1D158, 0x1D165, 0x1D16F), 0x1D162 => array(0x1D158, 0x1D165, 0x1D170), 0x1D163 => array(0x1D158, 0x1D165, 0x1D171),
2796
+					0x1D164 => array(0x1D158, 0x1D165, 0x1D172), 0x1D1BB => array(0x1D1B9, 0x1D165), 0x1D1BC => array(0x1D1BA, 0x1D165),
2797
+					0x1D1BD => array(0x1D1B9, 0x1D165, 0x1D16E), 0x1D1BE => array(0x1D1BA, 0x1D165, 0x1D16E), 0x1D1BF => array(0x1D1B9, 0x1D165, 0x1D16F),
2798
+					0x1D1C0 => array(0x1D1BA, 0x1D165, 0x1D16F), 0x1D400 => array(0x61), 0x1D401 => array(0x62),
2799
+					0x1D402 => array(0x63), 0x1D403 => array(0x64), 0x1D404 => array(0x65),
2800
+					0x1D405 => array(0x66), 0x1D406 => array(0x67), 0x1D407 => array(0x68),
2801
+					0x1D408 => array(0x69), 0x1D409 => array(0x6A), 0x1D40A => array(0x6B),
2802
+					0x1D40B => array(0x6C), 0x1D40C => array(0x6D), 0x1D40D => array(0x6E),
2803
+					0x1D40E => array(0x6F), 0x1D40F => array(0x70), 0x1D410 => array(0x71),
2804
+					0x1D411 => array(0x72), 0x1D412 => array(0x73), 0x1D413 => array(0x74),
2805
+					0x1D414 => array(0x75), 0x1D415 => array(0x76), 0x1D416 => array(0x77),
2806
+					0x1D417 => array(0x78), 0x1D418 => array(0x79), 0x1D419 => array(0x7A),
2807
+					0x1D41A => array(0x61), 0x1D41B => array(0x62), 0x1D41C => array(0x63),
2808
+					0x1D41D => array(0x64), 0x1D41E => array(0x65), 0x1D41F => array(0x66),
2809
+					0x1D420 => array(0x67), 0x1D421 => array(0x68), 0x1D422 => array(0x69),
2810
+					0x1D423 => array(0x6A), 0x1D424 => array(0x6B), 0x1D425 => array(0x6C),
2811
+					0x1D426 => array(0x6D), 0x1D427 => array(0x6E), 0x1D428 => array(0x6F),
2812
+					0x1D429 => array(0x70), 0x1D42A => array(0x71), 0x1D42B => array(0x72),
2813
+					0x1D42C => array(0x73), 0x1D42D => array(0x74), 0x1D42E => array(0x75),
2814
+					0x1D42F => array(0x76), 0x1D430 => array(0x77), 0x1D431 => array(0x78),
2815
+					0x1D432 => array(0x79), 0x1D433 => array(0x7A), 0x1D434 => array(0x61),
2816
+					0x1D435 => array(0x62), 0x1D436 => array(0x63), 0x1D437 => array(0x64),
2817
+					0x1D438 => array(0x65), 0x1D439 => array(0x66), 0x1D43A => array(0x67),
2818
+					0x1D43B => array(0x68), 0x1D43C => array(0x69), 0x1D43D => array(0x6A),
2819
+					0x1D43E => array(0x6B), 0x1D43F => array(0x6C), 0x1D440 => array(0x6D),
2820
+					0x1D441 => array(0x6E), 0x1D442 => array(0x6F), 0x1D443 => array(0x70),
2821
+					0x1D444 => array(0x71), 0x1D445 => array(0x72), 0x1D446 => array(0x73),
2822
+					0x1D447 => array(0x74), 0x1D448 => array(0x75), 0x1D449 => array(0x76),
2823
+					0x1D44A => array(0x77), 0x1D44B => array(0x78), 0x1D44C => array(0x79),
2824
+					0x1D44D => array(0x7A), 0x1D44E => array(0x61), 0x1D44F => array(0x62),
2825
+					0x1D450 => array(0x63), 0x1D451 => array(0x64), 0x1D452 => array(0x65),
2826
+					0x1D453 => array(0x66), 0x1D454 => array(0x67), 0x1D456 => array(0x69),
2827
+					0x1D457 => array(0x6A), 0x1D458 => array(0x6B), 0x1D459 => array(0x6C),
2828
+					0x1D45A => array(0x6D), 0x1D45B => array(0x6E), 0x1D45C => array(0x6F),
2829
+					0x1D45D => array(0x70), 0x1D45E => array(0x71), 0x1D45F => array(0x72),
2830
+					0x1D460 => array(0x73), 0x1D461 => array(0x74), 0x1D462 => array(0x75),
2831
+					0x1D463 => array(0x76), 0x1D464 => array(0x77), 0x1D465 => array(0x78),
2832
+					0x1D466 => array(0x79), 0x1D467 => array(0x7A), 0x1D468 => array(0x61),
2833
+					0x1D469 => array(0x62), 0x1D46A => array(0x63), 0x1D46B => array(0x64),
2834
+					0x1D46C => array(0x65), 0x1D46D => array(0x66), 0x1D46E => array(0x67),
2835
+					0x1D46F => array(0x68), 0x1D470 => array(0x69), 0x1D471 => array(0x6A),
2836
+					0x1D472 => array(0x6B), 0x1D473 => array(0x6C), 0x1D474 => array(0x6D),
2837
+					0x1D475 => array(0x6E), 0x1D476 => array(0x6F), 0x1D477 => array(0x70),
2838
+					0x1D478 => array(0x71), 0x1D479 => array(0x72), 0x1D47A => array(0x73),
2839
+					0x1D47B => array(0x74), 0x1D47C => array(0x75), 0x1D47D => array(0x76),
2840
+					0x1D47E => array(0x77), 0x1D47F => array(0x78), 0x1D480 => array(0x79),
2841
+					0x1D481 => array(0x7A), 0x1D482 => array(0x61), 0x1D483 => array(0x62),
2842
+					0x1D484 => array(0x63), 0x1D485 => array(0x64), 0x1D486 => array(0x65),
2843
+					0x1D487 => array(0x66), 0x1D488 => array(0x67), 0x1D489 => array(0x68),
2844
+					0x1D48A => array(0x69), 0x1D48B => array(0x6A), 0x1D48C => array(0x6B),
2845
+					0x1D48D => array(0x6C), 0x1D48E => array(0x6D), 0x1D48F => array(0x6E),
2846
+					0x1D490 => array(0x6F), 0x1D491 => array(0x70), 0x1D492 => array(0x71),
2847
+					0x1D493 => array(0x72), 0x1D494 => array(0x73), 0x1D495 => array(0x74),
2848
+					0x1D496 => array(0x75), 0x1D497 => array(0x76), 0x1D498 => array(0x77),
2849
+					0x1D499 => array(0x78), 0x1D49A => array(0x79), 0x1D49B => array(0x7A),
2850
+					0x1D49C => array(0x61), 0x1D49E => array(0x63), 0x1D49F => array(0x64),
2851
+					0x1D4A2 => array(0x67), 0x1D4A5 => array(0x6A), 0x1D4A6 => array(0x6B),
2852
+					0x1D4A9 => array(0x6E), 0x1D4AA => array(0x6F), 0x1D4AB => array(0x70),
2853
+					0x1D4AC => array(0x71), 0x1D4AE => array(0x73), 0x1D4AF => array(0x74),
2854
+					0x1D4B0 => array(0x75), 0x1D4B1 => array(0x76), 0x1D4B2 => array(0x77),
2855
+					0x1D4B3 => array(0x78), 0x1D4B4 => array(0x79), 0x1D4B5 => array(0x7A),
2856
+					0x1D4B6 => array(0x61), 0x1D4B7 => array(0x62), 0x1D4B8 => array(0x63),
2857
+					0x1D4B9 => array(0x64), 0x1D4BB => array(0x66), 0x1D4BD => array(0x68),
2858
+					0x1D4BE => array(0x69), 0x1D4BF => array(0x6A), 0x1D4C0 => array(0x6B),
2859
+					0x1D4C1 => array(0x6C), 0x1D4C2 => array(0x6D), 0x1D4C3 => array(0x6E),
2860
+					0x1D4C5 => array(0x70), 0x1D4C6 => array(0x71), 0x1D4C7 => array(0x72),
2861
+					0x1D4C8 => array(0x73), 0x1D4C9 => array(0x74), 0x1D4CA => array(0x75),
2862
+					0x1D4CB => array(0x76), 0x1D4CC => array(0x77), 0x1D4CD => array(0x78),
2863
+					0x1D4CE => array(0x79), 0x1D4CF => array(0x7A), 0x1D4D0 => array(0x61),
2864
+					0x1D4D1 => array(0x62), 0x1D4D2 => array(0x63), 0x1D4D3 => array(0x64),
2865
+					0x1D4D4 => array(0x65), 0x1D4D5 => array(0x66), 0x1D4D6 => array(0x67),
2866
+					0x1D4D7 => array(0x68), 0x1D4D8 => array(0x69), 0x1D4D9 => array(0x6A),
2867
+					0x1D4DA => array(0x6B), 0x1D4DB => array(0x6C), 0x1D4DC => array(0x6D),
2868
+					0x1D4DD => array(0x6E), 0x1D4DE => array(0x6F), 0x1D4DF => array(0x70),
2869
+					0x1D4E0 => array(0x71), 0x1D4E1 => array(0x72), 0x1D4E2 => array(0x73),
2870
+					0x1D4E3 => array(0x74), 0x1D4E4 => array(0x75), 0x1D4E5 => array(0x76),
2871
+					0x1D4E6 => array(0x77), 0x1D4E7 => array(0x78), 0x1D4E8 => array(0x79),
2872
+					0x1D4E9 => array(0x7A), 0x1D4EA => array(0x61), 0x1D4EB => array(0x62),
2873
+					0x1D4EC => array(0x63), 0x1D4ED => array(0x64), 0x1D4EE => array(0x65),
2874
+					0x1D4EF => array(0x66), 0x1D4F0 => array(0x67), 0x1D4F1 => array(0x68),
2875
+					0x1D4F2 => array(0x69), 0x1D4F3 => array(0x6A), 0x1D4F4 => array(0x6B),
2876
+					0x1D4F5 => array(0x6C), 0x1D4F6 => array(0x6D), 0x1D4F7 => array(0x6E),
2877
+					0x1D4F8 => array(0x6F), 0x1D4F9 => array(0x70), 0x1D4FA => array(0x71),
2878
+					0x1D4FB => array(0x72), 0x1D4FC => array(0x73), 0x1D4FD => array(0x74),
2879
+					0x1D4FE => array(0x75), 0x1D4FF => array(0x76), 0x1D500 => array(0x77),
2880
+					0x1D501 => array(0x78), 0x1D502 => array(0x79), 0x1D503 => array(0x7A),
2881
+					0x1D504 => array(0x61), 0x1D505 => array(0x62), 0x1D507 => array(0x64),
2882
+					0x1D508 => array(0x65), 0x1D509 => array(0x66), 0x1D50A => array(0x67),
2883
+					0x1D50D => array(0x6A), 0x1D50E => array(0x6B), 0x1D50F => array(0x6C),
2884
+					0x1D510 => array(0x6D), 0x1D511 => array(0x6E), 0x1D512 => array(0x6F),
2885
+					0x1D513 => array(0x70), 0x1D514 => array(0x71), 0x1D516 => array(0x73),
2886
+					0x1D517 => array(0x74), 0x1D518 => array(0x75), 0x1D519 => array(0x76),
2887
+					0x1D51A => array(0x77), 0x1D51B => array(0x78), 0x1D51C => array(0x79),
2888
+					0x1D51E => array(0x61), 0x1D51F => array(0x62), 0x1D520 => array(0x63),
2889
+					0x1D521 => array(0x64), 0x1D522 => array(0x65), 0x1D523 => array(0x66),
2890
+					0x1D524 => array(0x67), 0x1D525 => array(0x68), 0x1D526 => array(0x69),
2891
+					0x1D527 => array(0x6A), 0x1D528 => array(0x6B), 0x1D529 => array(0x6C),
2892
+					0x1D52A => array(0x6D), 0x1D52B => array(0x6E), 0x1D52C => array(0x6F),
2893
+					0x1D52D => array(0x70), 0x1D52E => array(0x71), 0x1D52F => array(0x72),
2894
+					0x1D530 => array(0x73), 0x1D531 => array(0x74), 0x1D532 => array(0x75),
2895
+					0x1D533 => array(0x76), 0x1D534 => array(0x77), 0x1D535 => array(0x78),
2896
+					0x1D536 => array(0x79), 0x1D537 => array(0x7A), 0x1D538 => array(0x61),
2897
+					0x1D539 => array(0x62), 0x1D53B => array(0x64), 0x1D53C => array(0x65),
2898
+					0x1D53D => array(0x66), 0x1D53E => array(0x67), 0x1D540 => array(0x69),
2899
+					0x1D541 => array(0x6A), 0x1D542 => array(0x6B), 0x1D543 => array(0x6C),
2900
+					0x1D544 => array(0x6D), 0x1D546 => array(0x6F), 0x1D54A => array(0x73),
2901
+					0x1D54B => array(0x74), 0x1D54C => array(0x75), 0x1D54D => array(0x76),
2902
+					0x1D54E => array(0x77), 0x1D54F => array(0x78), 0x1D550 => array(0x79),
2903
+					0x1D552 => array(0x61), 0x1D553 => array(0x62), 0x1D554 => array(0x63),
2904
+					0x1D555 => array(0x64), 0x1D556 => array(0x65), 0x1D557 => array(0x66),
2905
+					0x1D558 => array(0x67), 0x1D559 => array(0x68), 0x1D55A => array(0x69),
2906
+					0x1D55B => array(0x6A), 0x1D55C => array(0x6B), 0x1D55D => array(0x6C),
2907
+					0x1D55E => array(0x6D), 0x1D55F => array(0x6E), 0x1D560 => array(0x6F),
2908
+					0x1D561 => array(0x70), 0x1D562 => array(0x71), 0x1D563 => array(0x72),
2909
+					0x1D564 => array(0x73), 0x1D565 => array(0x74), 0x1D566 => array(0x75),
2910
+					0x1D567 => array(0x76), 0x1D568 => array(0x77), 0x1D569 => array(0x78),
2911
+					0x1D56A => array(0x79), 0x1D56B => array(0x7A), 0x1D56C => array(0x61),
2912
+					0x1D56D => array(0x62), 0x1D56E => array(0x63), 0x1D56F => array(0x64),
2913
+					0x1D570 => array(0x65), 0x1D571 => array(0x66), 0x1D572 => array(0x67),
2914
+					0x1D573 => array(0x68), 0x1D574 => array(0x69), 0x1D575 => array(0x6A),
2915
+					0x1D576 => array(0x6B), 0x1D577 => array(0x6C), 0x1D578 => array(0x6D),
2916
+					0x1D579 => array(0x6E), 0x1D57A => array(0x6F), 0x1D57B => array(0x70),
2917
+					0x1D57C => array(0x71), 0x1D57D => array(0x72), 0x1D57E => array(0x73),
2918
+					0x1D57F => array(0x74), 0x1D580 => array(0x75), 0x1D581 => array(0x76),
2919
+					0x1D582 => array(0x77), 0x1D583 => array(0x78), 0x1D584 => array(0x79),
2920
+					0x1D585 => array(0x7A), 0x1D586 => array(0x61), 0x1D587 => array(0x62),
2921
+					0x1D588 => array(0x63), 0x1D589 => array(0x64), 0x1D58A => array(0x65),
2922
+					0x1D58B => array(0x66), 0x1D58C => array(0x67), 0x1D58D => array(0x68),
2923
+					0x1D58E => array(0x69), 0x1D58F => array(0x6A), 0x1D590 => array(0x6B),
2924
+					0x1D591 => array(0x6C), 0x1D592 => array(0x6D), 0x1D593 => array(0x6E),
2925
+					0x1D594 => array(0x6F), 0x1D595 => array(0x70), 0x1D596 => array(0x71),
2926
+					0x1D597 => array(0x72), 0x1D598 => array(0x73), 0x1D599 => array(0x74),
2927
+					0x1D59A => array(0x75), 0x1D59B => array(0x76), 0x1D59C => array(0x77),
2928
+					0x1D59D => array(0x78), 0x1D59E => array(0x79), 0x1D59F => array(0x7A),
2929
+					0x1D5A0 => array(0x61), 0x1D5A1 => array(0x62), 0x1D5A2 => array(0x63),
2930
+					0x1D5A3 => array(0x64), 0x1D5A4 => array(0x65), 0x1D5A5 => array(0x66),
2931
+					0x1D5A6 => array(0x67), 0x1D5A7 => array(0x68), 0x1D5A8 => array(0x69),
2932
+					0x1D5A9 => array(0x6A), 0x1D5AA => array(0x6B), 0x1D5AB => array(0x6C),
2933
+					0x1D5AC => array(0x6D), 0x1D5AD => array(0x6E), 0x1D5AE => array(0x6F),
2934
+					0x1D5AF => array(0x70), 0x1D5B0 => array(0x71), 0x1D5B1 => array(0x72),
2935
+					0x1D5B2 => array(0x73), 0x1D5B3 => array(0x74), 0x1D5B4 => array(0x75),
2936
+					0x1D5B5 => array(0x76), 0x1D5B6 => array(0x77), 0x1D5B7 => array(0x78),
2937
+					0x1D5B8 => array(0x79), 0x1D5B9 => array(0x7A), 0x1D5BA => array(0x61),
2938
+					0x1D5BB => array(0x62), 0x1D5BC => array(0x63), 0x1D5BD => array(0x64),
2939
+					0x1D5BE => array(0x65), 0x1D5BF => array(0x66), 0x1D5C0 => array(0x67),
2940
+					0x1D5C1 => array(0x68), 0x1D5C2 => array(0x69), 0x1D5C3 => array(0x6A),
2941
+					0x1D5C4 => array(0x6B), 0x1D5C5 => array(0x6C), 0x1D5C6 => array(0x6D),
2942
+					0x1D5C7 => array(0x6E), 0x1D5C8 => array(0x6F), 0x1D5C9 => array(0x70),
2943
+					0x1D5CA => array(0x71), 0x1D5CB => array(0x72), 0x1D5CC => array(0x73),
2944
+					0x1D5CD => array(0x74), 0x1D5CE => array(0x75), 0x1D5CF => array(0x76),
2945
+					0x1D5D0 => array(0x77), 0x1D5D1 => array(0x78), 0x1D5D2 => array(0x79),
2946
+					0x1D5D3 => array(0x7A), 0x1D5D4 => array(0x61), 0x1D5D5 => array(0x62),
2947
+					0x1D5D6 => array(0x63), 0x1D5D7 => array(0x64), 0x1D5D8 => array(0x65),
2948
+					0x1D5D9 => array(0x66), 0x1D5DA => array(0x67), 0x1D5DB => array(0x68),
2949
+					0x1D5DC => array(0x69), 0x1D5DD => array(0x6A), 0x1D5DE => array(0x6B),
2950
+					0x1D5DF => array(0x6C), 0x1D5E0 => array(0x6D), 0x1D5E1 => array(0x6E),
2951
+					0x1D5E2 => array(0x6F), 0x1D5E3 => array(0x70), 0x1D5E4 => array(0x71),
2952
+					0x1D5E5 => array(0x72), 0x1D5E6 => array(0x73), 0x1D5E7 => array(0x74),
2953
+					0x1D5E8 => array(0x75), 0x1D5E9 => array(0x76), 0x1D5EA => array(0x77),
2954
+					0x1D5EB => array(0x78), 0x1D5EC => array(0x79), 0x1D5ED => array(0x7A),
2955
+					0x1D5EE => array(0x61), 0x1D5EF => array(0x62), 0x1D5F0 => array(0x63),
2956
+					0x1D5F1 => array(0x64), 0x1D5F2 => array(0x65), 0x1D5F3 => array(0x66),
2957
+					0x1D5F4 => array(0x67), 0x1D5F5 => array(0x68), 0x1D5F6 => array(0x69),
2958
+					0x1D5F7 => array(0x6A), 0x1D5F8 => array(0x6B), 0x1D5F9 => array(0x6C),
2959
+					0x1D5FA => array(0x6D), 0x1D5FB => array(0x6E), 0x1D5FC => array(0x6F),
2960
+					0x1D5FD => array(0x70), 0x1D5FE => array(0x71), 0x1D5FF => array(0x72),
2961
+					0x1D600 => array(0x73), 0x1D601 => array(0x74), 0x1D602 => array(0x75),
2962
+					0x1D603 => array(0x76), 0x1D604 => array(0x77), 0x1D605 => array(0x78),
2963
+					0x1D606 => array(0x79), 0x1D607 => array(0x7A), 0x1D608 => array(0x61),
2964
+					0x1D609 => array(0x62), 0x1D60A => array(0x63), 0x1D60B => array(0x64),
2965
+					0x1D60C => array(0x65), 0x1D60D => array(0x66), 0x1D60E => array(0x67),
2966
+					0x1D60F => array(0x68), 0x1D610 => array(0x69), 0x1D611 => array(0x6A),
2967
+					0x1D612 => array(0x6B), 0x1D613 => array(0x6C), 0x1D614 => array(0x6D),
2968
+					0x1D615 => array(0x6E), 0x1D616 => array(0x6F), 0x1D617 => array(0x70),
2969
+					0x1D618 => array(0x71), 0x1D619 => array(0x72), 0x1D61A => array(0x73),
2970
+					0x1D61B => array(0x74), 0x1D61C => array(0x75), 0x1D61D => array(0x76),
2971
+					0x1D61E => array(0x77), 0x1D61F => array(0x78), 0x1D620 => array(0x79),
2972
+					0x1D621 => array(0x7A), 0x1D622 => array(0x61), 0x1D623 => array(0x62),
2973
+					0x1D624 => array(0x63), 0x1D625 => array(0x64), 0x1D626 => array(0x65),
2974
+					0x1D627 => array(0x66), 0x1D628 => array(0x67), 0x1D629 => array(0x68),
2975
+					0x1D62A => array(0x69), 0x1D62B => array(0x6A), 0x1D62C => array(0x6B),
2976
+					0x1D62D => array(0x6C), 0x1D62E => array(0x6D), 0x1D62F => array(0x6E),
2977
+					0x1D630 => array(0x6F), 0x1D631 => array(0x70), 0x1D632 => array(0x71),
2978
+					0x1D633 => array(0x72), 0x1D634 => array(0x73), 0x1D635 => array(0x74),
2979
+					0x1D636 => array(0x75), 0x1D637 => array(0x76), 0x1D638 => array(0x77),
2980
+					0x1D639 => array(0x78), 0x1D63A => array(0x79), 0x1D63B => array(0x7A),
2981
+					0x1D63C => array(0x61), 0x1D63D => array(0x62), 0x1D63E => array(0x63),
2982
+					0x1D63F => array(0x64), 0x1D640 => array(0x65), 0x1D641 => array(0x66),
2983
+					0x1D642 => array(0x67), 0x1D643 => array(0x68), 0x1D644 => array(0x69),
2984
+					0x1D645 => array(0x6A), 0x1D646 => array(0x6B), 0x1D647 => array(0x6C),
2985
+					0x1D648 => array(0x6D), 0x1D649 => array(0x6E), 0x1D64A => array(0x6F),
2986
+					0x1D64B => array(0x70), 0x1D64C => array(0x71), 0x1D64D => array(0x72),
2987
+					0x1D64E => array(0x73), 0x1D64F => array(0x74), 0x1D650 => array(0x75),
2988
+					0x1D651 => array(0x76), 0x1D652 => array(0x77), 0x1D653 => array(0x78),
2989
+					0x1D654 => array(0x79), 0x1D655 => array(0x7A), 0x1D656 => array(0x61),
2990
+					0x1D657 => array(0x62), 0x1D658 => array(0x63), 0x1D659 => array(0x64),
2991
+					0x1D65A => array(0x65), 0x1D65B => array(0x66), 0x1D65C => array(0x67),
2992
+					0x1D65D => array(0x68), 0x1D65E => array(0x69), 0x1D65F => array(0x6A),
2993
+					0x1D660 => array(0x6B), 0x1D661 => array(0x6C), 0x1D662 => array(0x6D),
2994
+					0x1D663 => array(0x6E), 0x1D664 => array(0x6F), 0x1D665 => array(0x70),
2995
+					0x1D666 => array(0x71), 0x1D667 => array(0x72), 0x1D668 => array(0x73),
2996
+					0x1D669 => array(0x74), 0x1D66A => array(0x75), 0x1D66B => array(0x76),
2997
+					0x1D66C => array(0x77), 0x1D66D => array(0x78), 0x1D66E => array(0x79),
2998
+					0x1D66F => array(0x7A), 0x1D670 => array(0x61), 0x1D671 => array(0x62),
2999
+					0x1D672 => array(0x63), 0x1D673 => array(0x64), 0x1D674 => array(0x65),
3000
+					0x1D675 => array(0x66), 0x1D676 => array(0x67), 0x1D677 => array(0x68),
3001
+					0x1D678 => array(0x69), 0x1D679 => array(0x6A), 0x1D67A => array(0x6B),
3002
+					0x1D67B => array(0x6C), 0x1D67C => array(0x6D), 0x1D67D => array(0x6E),
3003
+					0x1D67E => array(0x6F), 0x1D67F => array(0x70), 0x1D680 => array(0x71),
3004
+					0x1D681 => array(0x72), 0x1D682 => array(0x73), 0x1D683 => array(0x74),
3005
+					0x1D684 => array(0x75), 0x1D685 => array(0x76), 0x1D686 => array(0x77),
3006
+					0x1D687 => array(0x78), 0x1D688 => array(0x79), 0x1D689 => array(0x7A),
3007
+					0x1D68A => array(0x61), 0x1D68B => array(0x62), 0x1D68C => array(0x63),
3008
+					0x1D68D => array(0x64), 0x1D68E => array(0x65), 0x1D68F => array(0x66),
3009
+					0x1D690 => array(0x67), 0x1D691 => array(0x68), 0x1D692 => array(0x69),
3010
+					0x1D693 => array(0x6A), 0x1D694 => array(0x6B), 0x1D695 => array(0x6C),
3011
+					0x1D696 => array(0x6D), 0x1D697 => array(0x6E), 0x1D698 => array(0x6F),
3012
+					0x1D699 => array(0x70), 0x1D69A => array(0x71), 0x1D69B => array(0x72),
3013
+					0x1D69C => array(0x73), 0x1D69D => array(0x74), 0x1D69E => array(0x75),
3014
+					0x1D69F => array(0x76), 0x1D6A0 => array(0x77), 0x1D6A1 => array(0x78),
3015
+					0x1D6A2 => array(0x79), 0x1D6A3 => array(0x7A), 0x1D6A4 => array(0x131),
3016
+					0x1D6A5 => array(0x237), 0x1D6A8 => array(0x3B1), 0x1D6A9 => array(0x3B2),
3017
+					0x1D6AA => array(0x3B3), 0x1D6AB => array(0x3B4), 0x1D6AC => array(0x3B5),
3018
+					0x1D6AD => array(0x3B6), 0x1D6AE => array(0x3B7), 0x1D6AF => array(0x3B8),
3019
+					0x1D6B0 => array(0x3B9), 0x1D6B1 => array(0x3BA), 0x1D6B2 => array(0x3BB),
3020
+					0x1D6B3 => array(0x3BC), 0x1D6B4 => array(0x3BD), 0x1D6B5 => array(0x3BE),
3021
+					0x1D6B6 => array(0x3BF), 0x1D6B7 => array(0x3C0), 0x1D6B8 => array(0x3C1),
3022
+					0x1D6B9 => array(0x3B8), 0x1D6BA => array(0x3C3), 0x1D6BB => array(0x3C4),
3023
+					0x1D6BC => array(0x3C5), 0x1D6BD => array(0x3C6), 0x1D6BE => array(0x3C7),
3024
+					0x1D6BF => array(0x3C8), 0x1D6C0 => array(0x3C9), 0x1D6C1 => array(0x2207),
3025
+					0x1D6C2 => array(0x3B1), 0x1D6C3 => array(0x3B2), 0x1D6C4 => array(0x3B3),
3026
+					0x1D6C5 => array(0x3B4), 0x1D6C6 => array(0x3B5), 0x1D6C7 => array(0x3B6),
3027
+					0x1D6C8 => array(0x3B7), 0x1D6C9 => array(0x3B8), 0x1D6CA => array(0x3B9),
3028
+					0x1D6CB => array(0x3BA), 0x1D6CC => array(0x3BB), 0x1D6CD => array(0x3BC),
3029
+					0x1D6CE => array(0x3BD), 0x1D6CF => array(0x3BE), 0x1D6D0 => array(0x3BF),
3030
+					0x1D6D1 => array(0x3C0), 0x1D6D2 => array(0x3C1), 0x1D6D3 => array(0x3C3),
3031
+					0x1D6D4 => array(0x3C3), 0x1D6D5 => array(0x3C4), 0x1D6D6 => array(0x3C5),
3032
+					0x1D6D7 => array(0x3C6), 0x1D6D8 => array(0x3C7), 0x1D6D9 => array(0x3C8),
3033
+					0x1D6DA => array(0x3C9), 0x1D6DB => array(0x2202), 0x1D6DC => array(0x3B5),
3034
+					0x1D6DD => array(0x3B8), 0x1D6DE => array(0x3BA), 0x1D6DF => array(0x3C6),
3035
+					0x1D6E0 => array(0x3C1), 0x1D6E1 => array(0x3C0), 0x1D6E2 => array(0x3B1),
3036
+					0x1D6E3 => array(0x3B2), 0x1D6E4 => array(0x3B3), 0x1D6E5 => array(0x3B4),
3037
+					0x1D6E6 => array(0x3B5), 0x1D6E7 => array(0x3B6), 0x1D6E8 => array(0x3B7),
3038
+					0x1D6E9 => array(0x3B8), 0x1D6EA => array(0x3B9), 0x1D6EB => array(0x3BA),
3039
+					0x1D6EC => array(0x3BB), 0x1D6ED => array(0x3BC), 0x1D6EE => array(0x3BD),
3040
+					0x1D6EF => array(0x3BE), 0x1D6F0 => array(0x3BF), 0x1D6F1 => array(0x3C0),
3041
+					0x1D6F2 => array(0x3C1), 0x1D6F3 => array(0x3B8), 0x1D6F4 => array(0x3C3),
3042
+					0x1D6F5 => array(0x3C4), 0x1D6F6 => array(0x3C5), 0x1D6F7 => array(0x3C6),
3043
+					0x1D6F8 => array(0x3C7), 0x1D6F9 => array(0x3C8), 0x1D6FA => array(0x3C9),
3044
+					0x1D6FB => array(0x2207), 0x1D6FC => array(0x3B1), 0x1D6FD => array(0x3B2),
3045
+					0x1D6FE => array(0x3B3), 0x1D6FF => array(0x3B4), 0x1D700 => array(0x3B5),
3046
+					0x1D701 => array(0x3B6), 0x1D702 => array(0x3B7), 0x1D703 => array(0x3B8),
3047
+					0x1D704 => array(0x3B9), 0x1D705 => array(0x3BA), 0x1D706 => array(0x3BB),
3048
+					0x1D707 => array(0x3BC), 0x1D708 => array(0x3BD), 0x1D709 => array(0x3BE),
3049
+					0x1D70A => array(0x3BF), 0x1D70B => array(0x3C0), 0x1D70C => array(0x3C1),
3050
+					0x1D70D => array(0x3C3), 0x1D70E => array(0x3C3), 0x1D70F => array(0x3C4),
3051
+					0x1D710 => array(0x3C5), 0x1D711 => array(0x3C6), 0x1D712 => array(0x3C7),
3052
+					0x1D713 => array(0x3C8), 0x1D714 => array(0x3C9), 0x1D715 => array(0x2202),
3053
+					0x1D716 => array(0x3B5), 0x1D717 => array(0x3B8), 0x1D718 => array(0x3BA),
3054
+					0x1D719 => array(0x3C6), 0x1D71A => array(0x3C1), 0x1D71B => array(0x3C0),
3055
+					0x1D71C => array(0x3B1), 0x1D71D => array(0x3B2), 0x1D71E => array(0x3B3),
3056
+					0x1D71F => array(0x3B4), 0x1D720 => array(0x3B5), 0x1D721 => array(0x3B6),
3057
+					0x1D722 => array(0x3B7), 0x1D723 => array(0x3B8), 0x1D724 => array(0x3B9),
3058
+					0x1D725 => array(0x3BA), 0x1D726 => array(0x3BB), 0x1D727 => array(0x3BC),
3059
+					0x1D728 => array(0x3BD), 0x1D729 => array(0x3BE), 0x1D72A => array(0x3BF),
3060
+					0x1D72B => array(0x3C0), 0x1D72C => array(0x3C1), 0x1D72D => array(0x3B8),
3061
+					0x1D72E => array(0x3C3), 0x1D72F => array(0x3C4), 0x1D730 => array(0x3C5),
3062
+					0x1D731 => array(0x3C6), 0x1D732 => array(0x3C7), 0x1D733 => array(0x3C8),
3063
+					0x1D734 => array(0x3C9), 0x1D735 => array(0x2207), 0x1D736 => array(0x3B1),
3064
+					0x1D737 => array(0x3B2), 0x1D738 => array(0x3B3), 0x1D739 => array(0x3B4),
3065
+					0x1D73A => array(0x3B5), 0x1D73B => array(0x3B6), 0x1D73C => array(0x3B7),
3066
+					0x1D73D => array(0x3B8), 0x1D73E => array(0x3B9), 0x1D73F => array(0x3BA),
3067
+					0x1D740 => array(0x3BB), 0x1D741 => array(0x3BC), 0x1D742 => array(0x3BD),
3068
+					0x1D743 => array(0x3BE), 0x1D744 => array(0x3BF), 0x1D745 => array(0x3C0),
3069
+					0x1D746 => array(0x3C1), 0x1D747 => array(0x3C3), 0x1D748 => array(0x3C3),
3070
+					0x1D749 => array(0x3C4), 0x1D74A => array(0x3C5), 0x1D74B => array(0x3C6),
3071
+					0x1D74C => array(0x3C7), 0x1D74D => array(0x3C8), 0x1D74E => array(0x3C9),
3072
+					0x1D74F => array(0x2202), 0x1D750 => array(0x3B5), 0x1D751 => array(0x3B8),
3073
+					0x1D752 => array(0x3BA), 0x1D753 => array(0x3C6), 0x1D754 => array(0x3C1),
3074
+					0x1D755 => array(0x3C0), 0x1D756 => array(0x3B1), 0x1D757 => array(0x3B2),
3075
+					0x1D758 => array(0x3B3), 0x1D759 => array(0x3B4), 0x1D75A => array(0x3B5),
3076
+					0x1D75B => array(0x3B6), 0x1D75C => array(0x3B7), 0x1D75D => array(0x3B8),
3077
+					0x1D75E => array(0x3B9), 0x1D75F => array(0x3BA), 0x1D760 => array(0x3BB),
3078
+					0x1D761 => array(0x3BC), 0x1D762 => array(0x3BD), 0x1D763 => array(0x3BE),
3079
+					0x1D764 => array(0x3BF), 0x1D765 => array(0x3C0), 0x1D766 => array(0x3C1),
3080
+					0x1D767 => array(0x3B8), 0x1D768 => array(0x3C3), 0x1D769 => array(0x3C4),
3081
+					0x1D76A => array(0x3C5), 0x1D76B => array(0x3C6), 0x1D76C => array(0x3C7),
3082
+					0x1D76D => array(0x3C8), 0x1D76E => array(0x3C9), 0x1D76F => array(0x2207),
3083
+					0x1D770 => array(0x3B1), 0x1D771 => array(0x3B2), 0x1D772 => array(0x3B3),
3084
+					0x1D773 => array(0x3B4), 0x1D774 => array(0x3B5), 0x1D775 => array(0x3B6),
3085
+					0x1D776 => array(0x3B7), 0x1D777 => array(0x3B8), 0x1D778 => array(0x3B9),
3086
+					0x1D779 => array(0x3BA), 0x1D77A => array(0x3BB), 0x1D77B => array(0x3BC),
3087
+					0x1D77C => array(0x3BD), 0x1D77D => array(0x3BE), 0x1D77E => array(0x3BF),
3088
+					0x1D77F => array(0x3C0), 0x1D780 => array(0x3C1), 0x1D781 => array(0x3C3),
3089
+					0x1D782 => array(0x3C3), 0x1D783 => array(0x3C4), 0x1D784 => array(0x3C5),
3090
+					0x1D785 => array(0x3C6), 0x1D786 => array(0x3C7), 0x1D787 => array(0x3C8),
3091
+					0x1D788 => array(0x3C9), 0x1D789 => array(0x2202), 0x1D78A => array(0x3B5),
3092
+					0x1D78B => array(0x3B8), 0x1D78C => array(0x3BA), 0x1D78D => array(0x3C6),
3093
+					0x1D78E => array(0x3C1), 0x1D78F => array(0x3C0), 0x1D790 => array(0x3B1),
3094
+					0x1D791 => array(0x3B2), 0x1D792 => array(0x3B3), 0x1D793 => array(0x3B4),
3095
+					0x1D794 => array(0x3B5), 0x1D795 => array(0x3B6), 0x1D796 => array(0x3B7),
3096
+					0x1D797 => array(0x3B8), 0x1D798 => array(0x3B9), 0x1D799 => array(0x3BA),
3097
+					0x1D79A => array(0x3BB), 0x1D79B => array(0x3BC), 0x1D79C => array(0x3BD),
3098
+					0x1D79D => array(0x3BE), 0x1D79E => array(0x3BF), 0x1D79F => array(0x3C0),
3099
+					0x1D7A0 => array(0x3C1), 0x1D7A1 => array(0x3B8), 0x1D7A2 => array(0x3C3),
3100
+					0x1D7A3 => array(0x3C4), 0x1D7A4 => array(0x3C5), 0x1D7A5 => array(0x3C6),
3101
+					0x1D7A6 => array(0x3C7), 0x1D7A7 => array(0x3C8), 0x1D7A8 => array(0x3C9),
3102
+					0x1D7A9 => array(0x2207), 0x1D7AA => array(0x3B1), 0x1D7AB => array(0x3B2),
3103
+					0x1D7AC => array(0x3B3), 0x1D7AD => array(0x3B4), 0x1D7AE => array(0x3B5),
3104
+					0x1D7AF => array(0x3B6), 0x1D7B0 => array(0x3B7), 0x1D7B1 => array(0x3B8),
3105
+					0x1D7B2 => array(0x3B9), 0x1D7B3 => array(0x3BA), 0x1D7B4 => array(0x3BB),
3106
+					0x1D7B5 => array(0x3BC), 0x1D7B6 => array(0x3BD), 0x1D7B7 => array(0x3BE),
3107
+					0x1D7B8 => array(0x3BF), 0x1D7B9 => array(0x3C0), 0x1D7BA => array(0x3C1),
3108
+					0x1D7BB => array(0x3C3), 0x1D7BC => array(0x3C3), 0x1D7BD => array(0x3C4),
3109
+					0x1D7BE => array(0x3C5), 0x1D7BF => array(0x3C6), 0x1D7C0 => array(0x3C7),
3110
+					0x1D7C1 => array(0x3C8), 0x1D7C2 => array(0x3C9), 0x1D7C3 => array(0x2202),
3111
+					0x1D7C4 => array(0x3B5), 0x1D7C5 => array(0x3B8), 0x1D7C6 => array(0x3BA),
3112
+					0x1D7C7 => array(0x3C6), 0x1D7C8 => array(0x3C1), 0x1D7C9 => array(0x3C0),
3113
+					0x1D7CA => array(0x3DD), 0x1D7CB => array(0x3DD), 0x1D7CE => array(0x30),
3114
+					0x1D7CF => array(0x31), 0x1D7D0 => array(0x32), 0x1D7D1 => array(0x33),
3115
+					0x1D7D2 => array(0x34), 0x1D7D3 => array(0x35), 0x1D7D4 => array(0x36),
3116
+					0x1D7D5 => array(0x37), 0x1D7D6 => array(0x38), 0x1D7D7 => array(0x39),
3117
+					0x1D7D8 => array(0x30), 0x1D7D9 => array(0x31), 0x1D7DA => array(0x32),
3118
+					0x1D7DB => array(0x33), 0x1D7DC => array(0x34), 0x1D7DD => array(0x35),
3119
+					0x1D7DE => array(0x36), 0x1D7DF => array(0x37), 0x1D7E0 => array(0x38),
3120
+					0x1D7E1 => array(0x39), 0x1D7E2 => array(0x30), 0x1D7E3 => array(0x31),
3121
+					0x1D7E4 => array(0x32), 0x1D7E5 => array(0x33), 0x1D7E6 => array(0x34),
3122
+					0x1D7E7 => array(0x35), 0x1D7E8 => array(0x36), 0x1D7E9 => array(0x37),
3123
+					0x1D7EA => array(0x38), 0x1D7EB => array(0x39), 0x1D7EC => array(0x30),
3124
+					0x1D7ED => array(0x31), 0x1D7EE => array(0x32), 0x1D7EF => array(0x33),
3125
+					0x1D7F0 => array(0x34), 0x1D7F1 => array(0x35), 0x1D7F2 => array(0x36),
3126
+					0x1D7F3 => array(0x37), 0x1D7F4 => array(0x38), 0x1D7F5 => array(0x39),
3127
+					0x1D7F6 => array(0x30), 0x1D7F7 => array(0x31), 0x1D7F8 => array(0x32),
3128
+					0x1D7F9 => array(0x33), 0x1D7FA => array(0x34), 0x1D7FB => array(0x35),
3129
+					0x1D7FC => array(0x36), 0x1D7FD => array(0x37), 0x1D7FE => array(0x38),
3130
+					0x1D7FF => array(0x39), 0x1EE00 => array(0x627), 0x1EE01 => array(0x628),
3131
+					0x1EE02 => array(0x62C), 0x1EE03 => array(0x62F), 0x1EE05 => array(0x648),
3132
+					0x1EE06 => array(0x632), 0x1EE07 => array(0x62D), 0x1EE08 => array(0x637),
3133
+					0x1EE09 => array(0x64A), 0x1EE0A => array(0x643), 0x1EE0B => array(0x644),
3134
+					0x1EE0C => array(0x645), 0x1EE0D => array(0x646), 0x1EE0E => array(0x633),
3135
+					0x1EE0F => array(0x639), 0x1EE10 => array(0x641), 0x1EE11 => array(0x635),
3136
+					0x1EE12 => array(0x642), 0x1EE13 => array(0x631), 0x1EE14 => array(0x634),
3137
+					0x1EE15 => array(0x62A), 0x1EE16 => array(0x62B), 0x1EE17 => array(0x62E),
3138
+					0x1EE18 => array(0x630), 0x1EE19 => array(0x636), 0x1EE1A => array(0x638),
3139
+					0x1EE1B => array(0x63A), 0x1EE1C => array(0x66E), 0x1EE1D => array(0x6BA),
3140
+					0x1EE1E => array(0x6A1), 0x1EE1F => array(0x66F), 0x1EE21 => array(0x628),
3141
+					0x1EE22 => array(0x62C), 0x1EE24 => array(0x647), 0x1EE27 => array(0x62D),
3142
+					0x1EE29 => array(0x64A), 0x1EE2A => array(0x643), 0x1EE2B => array(0x644),
3143
+					0x1EE2C => array(0x645), 0x1EE2D => array(0x646), 0x1EE2E => array(0x633),
3144
+					0x1EE2F => array(0x639), 0x1EE30 => array(0x641), 0x1EE31 => array(0x635),
3145
+					0x1EE32 => array(0x642), 0x1EE34 => array(0x634), 0x1EE35 => array(0x62A),
3146
+					0x1EE36 => array(0x62B), 0x1EE37 => array(0x62E), 0x1EE39 => array(0x636),
3147
+					0x1EE3B => array(0x63A), 0x1EE42 => array(0x62C), 0x1EE47 => array(0x62D),
3148
+					0x1EE49 => array(0x64A), 0x1EE4B => array(0x644), 0x1EE4D => array(0x646),
3149
+					0x1EE4E => array(0x633), 0x1EE4F => array(0x639), 0x1EE51 => array(0x635),
3150
+					0x1EE52 => array(0x642), 0x1EE54 => array(0x634), 0x1EE57 => array(0x62E),
3151
+					0x1EE59 => array(0x636), 0x1EE5B => array(0x63A), 0x1EE5D => array(0x6BA),
3152
+					0x1EE5F => array(0x66F), 0x1EE61 => array(0x628), 0x1EE62 => array(0x62C),
3153
+					0x1EE64 => array(0x647), 0x1EE67 => array(0x62D), 0x1EE68 => array(0x637),
3154
+					0x1EE69 => array(0x64A), 0x1EE6A => array(0x643), 0x1EE6C => array(0x645),
3155
+					0x1EE6D => array(0x646), 0x1EE6E => array(0x633), 0x1EE6F => array(0x639),
3156
+					0x1EE70 => array(0x641), 0x1EE71 => array(0x635), 0x1EE72 => array(0x642),
3157
+					0x1EE74 => array(0x634), 0x1EE75 => array(0x62A), 0x1EE76 => array(0x62B),
3158
+					0x1EE77 => array(0x62E), 0x1EE79 => array(0x636), 0x1EE7A => array(0x638),
3159
+					0x1EE7B => array(0x63A), 0x1EE7C => array(0x66E), 0x1EE7E => array(0x6A1),
3160
+					0x1EE80 => array(0x627), 0x1EE81 => array(0x628), 0x1EE82 => array(0x62C),
3161
+					0x1EE83 => array(0x62F), 0x1EE84 => array(0x647), 0x1EE85 => array(0x648),
3162
+					0x1EE86 => array(0x632), 0x1EE87 => array(0x62D), 0x1EE88 => array(0x637),
3163
+					0x1EE89 => array(0x64A), 0x1EE8B => array(0x644), 0x1EE8C => array(0x645),
3164
+					0x1EE8D => array(0x646), 0x1EE8E => array(0x633), 0x1EE8F => array(0x639),
3165
+					0x1EE90 => array(0x641), 0x1EE91 => array(0x635), 0x1EE92 => array(0x642),
3166
+					0x1EE93 => array(0x631), 0x1EE94 => array(0x634), 0x1EE95 => array(0x62A),
3167
+					0x1EE96 => array(0x62B), 0x1EE97 => array(0x62E), 0x1EE98 => array(0x630),
3168
+					0x1EE99 => array(0x636), 0x1EE9A => array(0x638), 0x1EE9B => array(0x63A),
3169
+					0x1EEA1 => array(0x628), 0x1EEA2 => array(0x62C), 0x1EEA3 => array(0x62F),
3170
+					0x1EEA5 => array(0x648), 0x1EEA6 => array(0x632), 0x1EEA7 => array(0x62D),
3171
+					0x1EEA8 => array(0x637), 0x1EEA9 => array(0x64A), 0x1EEAB => array(0x644),
3172
+					0x1EEAC => array(0x645), 0x1EEAD => array(0x646), 0x1EEAE => array(0x633),
3173
+					0x1EEAF => array(0x639), 0x1EEB0 => array(0x641), 0x1EEB1 => array(0x635),
3174
+					0x1EEB2 => array(0x642), 0x1EEB3 => array(0x631), 0x1EEB4 => array(0x634),
3175
+					0x1EEB5 => array(0x62A), 0x1EEB6 => array(0x62B), 0x1EEB7 => array(0x62E),
3176
+					0x1EEB8 => array(0x630), 0x1EEB9 => array(0x636), 0x1EEBA => array(0x638),
3177
+					0x1EEBB => array(0x63A), 0x1F12A => array(0x3014, 0x73, 0x3015), 0x1F12B => array(0x63),
3178
+					0x1F12C => array(0x72), 0x1F12D => array(0x63, 0x64), 0x1F12E => array(0x77, 0x7A),
3179
+					0x1F130 => array(0x61), 0x1F131 => array(0x62), 0x1F132 => array(0x63),
3180
+					0x1F133 => array(0x64), 0x1F134 => array(0x65), 0x1F135 => array(0x66),
3181
+					0x1F136 => array(0x67), 0x1F137 => array(0x68), 0x1F138 => array(0x69),
3182
+					0x1F139 => array(0x6A), 0x1F13A => array(0x6B), 0x1F13B => array(0x6C),
3183
+					0x1F13C => array(0x6D), 0x1F13D => array(0x6E), 0x1F13E => array(0x6F),
3184
+					0x1F13F => array(0x70), 0x1F140 => array(0x71), 0x1F141 => array(0x72),
3185
+					0x1F142 => array(0x73), 0x1F143 => array(0x74), 0x1F144 => array(0x75),
3186
+					0x1F145 => array(0x76), 0x1F146 => array(0x77), 0x1F147 => array(0x78),
3187
+					0x1F148 => array(0x79), 0x1F149 => array(0x7A), 0x1F14A => array(0x68, 0x76),
3188
+					0x1F14B => array(0x6D, 0x76), 0x1F14C => array(0x73, 0x64), 0x1F14D => array(0x73, 0x73),
3189
+					0x1F14E => array(0x70, 0x70, 0x76), 0x1F14F => array(0x77, 0x63), 0x1F16A => array(0x6D, 0x63),
3190
+					0x1F16B => array(0x6D, 0x64), 0x1F190 => array(0x64, 0x6A), 0x1F200 => array(0x307B, 0x304B),
3191
+					0x1F201 => array(0x30B3, 0x30B3), 0x1F202 => array(0x30B5), 0x1F210 => array(0x624B),
3192
+					0x1F211 => array(0x5B57), 0x1F212 => array(0x53CC), 0x1F213 => array(0x30C7),
3193
+					0x1F214 => array(0x4E8C), 0x1F215 => array(0x591A), 0x1F216 => array(0x89E3),
3194
+					0x1F217 => array(0x5929), 0x1F218 => array(0x4EA4), 0x1F219 => array(0x6620),
3195
+					0x1F21A => array(0x7121), 0x1F21B => array(0x6599), 0x1F21C => array(0x524D),
3196
+					0x1F21D => array(0x5F8C), 0x1F21E => array(0x518D), 0x1F21F => array(0x65B0),
3197
+					0x1F220 => array(0x521D), 0x1F221 => array(0x7D42), 0x1F222 => array(0x751F),
3198
+					0x1F223 => array(0x8CA9), 0x1F224 => array(0x58F0), 0x1F225 => array(0x5439),
3199
+					0x1F226 => array(0x6F14), 0x1F227 => array(0x6295), 0x1F228 => array(0x6355),
3200
+					0x1F229 => array(0x4E00), 0x1F22A => array(0x4E09), 0x1F22B => array(0x904A),
3201
+					0x1F22C => array(0x5DE6), 0x1F22D => array(0x4E2D), 0x1F22E => array(0x53F3),
3202
+					0x1F22F => array(0x6307), 0x1F230 => array(0x8D70), 0x1F231 => array(0x6253),
3203
+					0x1F232 => array(0x7981), 0x1F233 => array(0x7A7A), 0x1F234 => array(0x5408),
3204
+					0x1F235 => array(0x6E80), 0x1F236 => array(0x6709), 0x1F237 => array(0x6708),
3205
+					0x1F238 => array(0x7533), 0x1F239 => array(0x5272), 0x1F23A => array(0x55B6),
3206
+					0x1F240 => array(0x3014, 0x672C, 0x3015), 0x1F241 => array(0x3014, 0x4E09, 0x3015), 0x1F242 => array(0x3014, 0x4E8C, 0x3015),
3207
+					0x1F243 => array(0x3014, 0x5B89, 0x3015), 0x1F244 => array(0x3014, 0x70B9, 0x3015), 0x1F245 => array(0x3014, 0x6253, 0x3015),
3208
+					0x1F246 => array(0x3014, 0x76D7, 0x3015), 0x1F247 => array(0x3014, 0x52DD, 0x3015), 0x1F248 => array(0x3014, 0x6557, 0x3015),
3209
+					0x1F250 => array(0x5F97), 0x1F251 => array(0x53EF), 0x2F800 => array(0x4E3D),
3210
+					0x2F801 => array(0x4E38), 0x2F802 => array(0x4E41), 0x2F803 => array(0x20122),
3211
+					0x2F804 => array(0x4F60), 0x2F805 => array(0x4FAE), 0x2F806 => array(0x4FBB),
3212
+					0x2F807 => array(0x5002), 0x2F808 => array(0x507A), 0x2F809 => array(0x5099),
3213
+					0x2F80A => array(0x50E7), 0x2F80B => array(0x50CF), 0x2F80C => array(0x349E),
3214
+					0x2F80D => array(0x2063A), 0x2F80E => array(0x514D), 0x2F80F => array(0x5154),
3215
+					0x2F810 => array(0x5164), 0x2F811 => array(0x5177), 0x2F812 => array(0x2051C),
3216
+					0x2F813 => array(0x34B9), 0x2F814 => array(0x5167), 0x2F815 => array(0x518D),
3217
+					0x2F816 => array(0x2054B), 0x2F817 => array(0x5197), 0x2F818 => array(0x51A4),
3218
+					0x2F819 => array(0x4ECC), 0x2F81A => array(0x51AC), 0x2F81B => array(0x51B5),
3219
+					0x2F81C => array(0x291DF), 0x2F81D => array(0x51F5), 0x2F81E => array(0x5203),
3220
+					0x2F81F => array(0x34DF), 0x2F820 => array(0x523B), 0x2F821 => array(0x5246),
3221
+					0x2F822 => array(0x5272), 0x2F823 => array(0x5277), 0x2F824 => array(0x3515),
3222
+					0x2F825 => array(0x52C7), 0x2F826 => array(0x52C9), 0x2F827 => array(0x52E4),
3223
+					0x2F828 => array(0x52FA), 0x2F829 => array(0x5305), 0x2F82A => array(0x5306),
3224
+					0x2F82B => array(0x5317), 0x2F82C => array(0x5349), 0x2F82D => array(0x5351),
3225
+					0x2F82E => array(0x535A), 0x2F82F => array(0x5373), 0x2F830 => array(0x537D),
3226
+					0x2F831 => array(0x537F), 0x2F832 => array(0x537F), 0x2F833 => array(0x537F),
3227
+					0x2F834 => array(0x20A2C), 0x2F835 => array(0x7070), 0x2F836 => array(0x53CA),
3228
+					0x2F837 => array(0x53DF), 0x2F838 => array(0x20B63), 0x2F839 => array(0x53EB),
3229
+					0x2F83A => array(0x53F1), 0x2F83B => array(0x5406), 0x2F83C => array(0x549E),
3230
+					0x2F83D => array(0x5438), 0x2F83E => array(0x5448), 0x2F83F => array(0x5468),
3231
+					0x2F840 => array(0x54A2), 0x2F841 => array(0x54F6), 0x2F842 => array(0x5510),
3232
+					0x2F843 => array(0x5553), 0x2F844 => array(0x5563), 0x2F845 => array(0x5584),
3233
+					0x2F846 => array(0x5584), 0x2F847 => array(0x5599), 0x2F848 => array(0x55AB),
3234
+					0x2F849 => array(0x55B3), 0x2F84A => array(0x55C2), 0x2F84B => array(0x5716),
3235
+					0x2F84C => array(0x5606), 0x2F84D => array(0x5717), 0x2F84E => array(0x5651),
3236
+					0x2F84F => array(0x5674), 0x2F850 => array(0x5207), 0x2F851 => array(0x58EE),
3237
+					0x2F852 => array(0x57CE), 0x2F853 => array(0x57F4), 0x2F854 => array(0x580D),
3238
+					0x2F855 => array(0x578B), 0x2F856 => array(0x5832), 0x2F857 => array(0x5831),
3239
+					0x2F858 => array(0x58AC), 0x2F859 => array(0x214E4), 0x2F85A => array(0x58F2),
3240
+					0x2F85B => array(0x58F7), 0x2F85C => array(0x5906), 0x2F85D => array(0x591A),
3241
+					0x2F85E => array(0x5922), 0x2F85F => array(0x5962), 0x2F860 => array(0x216A8),
3242
+					0x2F861 => array(0x216EA), 0x2F862 => array(0x59EC), 0x2F863 => array(0x5A1B),
3243
+					0x2F864 => array(0x5A27), 0x2F865 => array(0x59D8), 0x2F866 => array(0x5A66),
3244
+					0x2F867 => array(0x36EE), 0x2F869 => array(0x5B08), 0x2F86A => array(0x5B3E),
3245
+					0x2F86B => array(0x5B3E), 0x2F86C => array(0x219C8), 0x2F86D => array(0x5BC3),
3246
+					0x2F86E => array(0x5BD8), 0x2F86F => array(0x5BE7), 0x2F870 => array(0x5BF3),
3247
+					0x2F871 => array(0x21B18), 0x2F872 => array(0x5BFF), 0x2F873 => array(0x5C06),
3248
+					0x2F875 => array(0x5C22), 0x2F876 => array(0x3781), 0x2F877 => array(0x5C60),
3249
+					0x2F878 => array(0x5C6E), 0x2F879 => array(0x5CC0), 0x2F87A => array(0x5C8D),
3250
+					0x2F87B => array(0x21DE4), 0x2F87C => array(0x5D43), 0x2F87D => array(0x21DE6),
3251
+					0x2F87E => array(0x5D6E), 0x2F87F => array(0x5D6B), 0x2F880 => array(0x5D7C),
3252
+					0x2F881 => array(0x5DE1), 0x2F882 => array(0x5DE2), 0x2F883 => array(0x382F),
3253
+					0x2F884 => array(0x5DFD), 0x2F885 => array(0x5E28), 0x2F886 => array(0x5E3D),
3254
+					0x2F887 => array(0x5E69), 0x2F888 => array(0x3862), 0x2F889 => array(0x22183),
3255
+					0x2F88A => array(0x387C), 0x2F88B => array(0x5EB0), 0x2F88C => array(0x5EB3),
3256
+					0x2F88D => array(0x5EB6), 0x2F88E => array(0x5ECA), 0x2F88F => array(0x2A392),
3257
+					0x2F890 => array(0x5EFE), 0x2F891 => array(0x22331), 0x2F892 => array(0x22331),
3258
+					0x2F893 => array(0x8201), 0x2F894 => array(0x5F22), 0x2F895 => array(0x5F22),
3259
+					0x2F896 => array(0x38C7), 0x2F897 => array(0x232B8), 0x2F898 => array(0x261DA),
3260
+					0x2F899 => array(0x5F62), 0x2F89A => array(0x5F6B), 0x2F89B => array(0x38E3),
3261
+					0x2F89C => array(0x5F9A), 0x2F89D => array(0x5FCD), 0x2F89E => array(0x5FD7),
3262
+					0x2F89F => array(0x5FF9), 0x2F8A0 => array(0x6081), 0x2F8A1 => array(0x393A),
3263
+					0x2F8A2 => array(0x391C), 0x2F8A3 => array(0x6094), 0x2F8A4 => array(0x226D4),
3264
+					0x2F8A5 => array(0x60C7), 0x2F8A6 => array(0x6148), 0x2F8A7 => array(0x614C),
3265
+					0x2F8A8 => array(0x614E), 0x2F8A9 => array(0x614C), 0x2F8AA => array(0x617A),
3266
+					0x2F8AB => array(0x618E), 0x2F8AC => array(0x61B2), 0x2F8AD => array(0x61A4),
3267
+					0x2F8AE => array(0x61AF), 0x2F8AF => array(0x61DE), 0x2F8B0 => array(0x61F2),
3268
+					0x2F8B1 => array(0x61F6), 0x2F8B2 => array(0x6210), 0x2F8B3 => array(0x621B),
3269
+					0x2F8B4 => array(0x625D), 0x2F8B5 => array(0x62B1), 0x2F8B6 => array(0x62D4),
3270
+					0x2F8B7 => array(0x6350), 0x2F8B8 => array(0x22B0C), 0x2F8B9 => array(0x633D),
3271
+					0x2F8BA => array(0x62FC), 0x2F8BB => array(0x6368), 0x2F8BC => array(0x6383),
3272
+					0x2F8BD => array(0x63E4), 0x2F8BE => array(0x22BF1), 0x2F8BF => array(0x6422),
3273
+					0x2F8C0 => array(0x63C5), 0x2F8C1 => array(0x63A9), 0x2F8C2 => array(0x3A2E),
3274
+					0x2F8C3 => array(0x6469), 0x2F8C4 => array(0x647E), 0x2F8C5 => array(0x649D),
3275
+					0x2F8C6 => array(0x6477), 0x2F8C7 => array(0x3A6C), 0x2F8C8 => array(0x654F),
3276
+					0x2F8C9 => array(0x656C), 0x2F8CA => array(0x2300A), 0x2F8CB => array(0x65E3),
3277
+					0x2F8CC => array(0x66F8), 0x2F8CD => array(0x6649), 0x2F8CE => array(0x3B19),
3278
+					0x2F8CF => array(0x6691), 0x2F8D0 => array(0x3B08), 0x2F8D1 => array(0x3AE4),
3279
+					0x2F8D2 => array(0x5192), 0x2F8D3 => array(0x5195), 0x2F8D4 => array(0x6700),
3280
+					0x2F8D5 => array(0x669C), 0x2F8D6 => array(0x80AD), 0x2F8D7 => array(0x43D9),
3281
+					0x2F8D8 => array(0x6717), 0x2F8D9 => array(0x671B), 0x2F8DA => array(0x6721),
3282
+					0x2F8DB => array(0x675E), 0x2F8DC => array(0x6753), 0x2F8DD => array(0x233C3),
3283
+					0x2F8DE => array(0x3B49), 0x2F8DF => array(0x67FA), 0x2F8E0 => array(0x6785),
3284
+					0x2F8E1 => array(0x6852), 0x2F8E2 => array(0x6885), 0x2F8E3 => array(0x2346D),
3285
+					0x2F8E4 => array(0x688E), 0x2F8E5 => array(0x681F), 0x2F8E6 => array(0x6914),
3286
+					0x2F8E7 => array(0x3B9D), 0x2F8E8 => array(0x6942), 0x2F8E9 => array(0x69A3),
3287
+					0x2F8EA => array(0x69EA), 0x2F8EB => array(0x6AA8), 0x2F8EC => array(0x236A3),
3288
+					0x2F8ED => array(0x6ADB), 0x2F8EE => array(0x3C18), 0x2F8EF => array(0x6B21),
3289
+					0x2F8F0 => array(0x238A7), 0x2F8F1 => array(0x6B54), 0x2F8F2 => array(0x3C4E),
3290
+					0x2F8F3 => array(0x6B72), 0x2F8F4 => array(0x6B9F), 0x2F8F5 => array(0x6BBA),
3291
+					0x2F8F6 => array(0x6BBB), 0x2F8F7 => array(0x23A8D), 0x2F8F8 => array(0x21D0B),
3292
+					0x2F8F9 => array(0x23AFA), 0x2F8FA => array(0x6C4E), 0x2F8FB => array(0x23CBC),
3293
+					0x2F8FC => array(0x6CBF), 0x2F8FD => array(0x6CCD), 0x2F8FE => array(0x6C67),
3294
+					0x2F8FF => array(0x6D16), 0x2F900 => array(0x6D3E), 0x2F901 => array(0x6D77),
3295
+					0x2F902 => array(0x6D41), 0x2F903 => array(0x6D69), 0x2F904 => array(0x6D78),
3296
+					0x2F905 => array(0x6D85), 0x2F906 => array(0x23D1E), 0x2F907 => array(0x6D34),
3297
+					0x2F908 => array(0x6E2F), 0x2F909 => array(0x6E6E), 0x2F90A => array(0x3D33),
3298
+					0x2F90B => array(0x6ECB), 0x2F90C => array(0x6EC7), 0x2F90D => array(0x23ED1),
3299
+					0x2F90E => array(0x6DF9), 0x2F90F => array(0x6F6E), 0x2F910 => array(0x23F5E),
3300
+					0x2F911 => array(0x23F8E), 0x2F912 => array(0x6FC6), 0x2F913 => array(0x7039),
3301
+					0x2F914 => array(0x701E), 0x2F915 => array(0x701B), 0x2F916 => array(0x3D96),
3302
+					0x2F917 => array(0x704A), 0x2F918 => array(0x707D), 0x2F919 => array(0x7077),
3303
+					0x2F91A => array(0x70AD), 0x2F91B => array(0x20525), 0x2F91C => array(0x7145),
3304
+					0x2F91D => array(0x24263), 0x2F91E => array(0x719C), 0x2F920 => array(0x7228),
3305
+					0x2F921 => array(0x7235), 0x2F922 => array(0x7250), 0x2F923 => array(0x24608),
3306
+					0x2F924 => array(0x7280), 0x2F925 => array(0x7295), 0x2F926 => array(0x24735),
3307
+					0x2F927 => array(0x24814), 0x2F928 => array(0x737A), 0x2F929 => array(0x738B),
3308
+					0x2F92A => array(0x3EAC), 0x2F92B => array(0x73A5), 0x2F92C => array(0x3EB8),
3309
+					0x2F92D => array(0x3EB8), 0x2F92E => array(0x7447), 0x2F92F => array(0x745C),
3310
+					0x2F930 => array(0x7471), 0x2F931 => array(0x7485), 0x2F932 => array(0x74CA),
3311
+					0x2F933 => array(0x3F1B), 0x2F934 => array(0x7524), 0x2F935 => array(0x24C36),
3312
+					0x2F936 => array(0x753E), 0x2F937 => array(0x24C92), 0x2F938 => array(0x7570),
3313
+					0x2F939 => array(0x2219F), 0x2F93A => array(0x7610), 0x2F93B => array(0x24FA1),
3314
+					0x2F93C => array(0x24FB8), 0x2F93D => array(0x25044), 0x2F93E => array(0x3FFC),
3315
+					0x2F93F => array(0x4008), 0x2F940 => array(0x76F4), 0x2F941 => array(0x250F3),
3316
+					0x2F942 => array(0x250F2), 0x2F943 => array(0x25119), 0x2F944 => array(0x25133),
3317
+					0x2F945 => array(0x771E), 0x2F946 => array(0x771F), 0x2F947 => array(0x771F),
3318
+					0x2F948 => array(0x774A), 0x2F949 => array(0x4039), 0x2F94A => array(0x778B),
3319
+					0x2F94B => array(0x4046), 0x2F94C => array(0x4096), 0x2F94D => array(0x2541D),
3320
+					0x2F94E => array(0x784E), 0x2F94F => array(0x788C), 0x2F950 => array(0x78CC),
3321
+					0x2F951 => array(0x40E3), 0x2F952 => array(0x25626), 0x2F953 => array(0x7956),
3322
+					0x2F954 => array(0x2569A), 0x2F955 => array(0x256C5), 0x2F956 => array(0x798F),
3323
+					0x2F957 => array(0x79EB), 0x2F958 => array(0x412F), 0x2F959 => array(0x7A40),
3324
+					0x2F95A => array(0x7A4A), 0x2F95B => array(0x7A4F), 0x2F95C => array(0x2597C),
3325
+					0x2F95D => array(0x25AA7), 0x2F95E => array(0x25AA7), 0x2F960 => array(0x4202),
3326
+					0x2F961 => array(0x25BAB), 0x2F962 => array(0x7BC6), 0x2F963 => array(0x7BC9),
3327
+					0x2F964 => array(0x4227), 0x2F965 => array(0x25C80), 0x2F966 => array(0x7CD2),
3328
+					0x2F967 => array(0x42A0), 0x2F968 => array(0x7CE8), 0x2F969 => array(0x7CE3),
3329
+					0x2F96A => array(0x7D00), 0x2F96B => array(0x25F86), 0x2F96C => array(0x7D63),
3330
+					0x2F96D => array(0x4301), 0x2F96E => array(0x7DC7), 0x2F96F => array(0x7E02),
3331
+					0x2F970 => array(0x7E45), 0x2F971 => array(0x4334), 0x2F972 => array(0x26228),
3332
+					0x2F973 => array(0x26247), 0x2F974 => array(0x4359), 0x2F975 => array(0x262D9),
3333
+					0x2F976 => array(0x7F7A), 0x2F977 => array(0x2633E), 0x2F978 => array(0x7F95),
3334
+					0x2F979 => array(0x7FFA), 0x2F97A => array(0x8005), 0x2F97B => array(0x264DA),
3335
+					0x2F97C => array(0x26523), 0x2F97D => array(0x8060), 0x2F97E => array(0x265A8),
3336
+					0x2F97F => array(0x8070), 0x2F980 => array(0x2335F), 0x2F981 => array(0x43D5),
3337
+					0x2F982 => array(0x80B2), 0x2F983 => array(0x8103), 0x2F984 => array(0x440B),
3338
+					0x2F985 => array(0x813E), 0x2F986 => array(0x5AB5), 0x2F987 => array(0x267A7),
3339
+					0x2F988 => array(0x267B5), 0x2F989 => array(0x23393), 0x2F98A => array(0x2339C),
3340
+					0x2F98B => array(0x8201), 0x2F98C => array(0x8204), 0x2F98D => array(0x8F9E),
3341
+					0x2F98E => array(0x446B), 0x2F98F => array(0x8291), 0x2F990 => array(0x828B),
3342
+					0x2F991 => array(0x829D), 0x2F992 => array(0x52B3), 0x2F993 => array(0x82B1),
3343
+					0x2F994 => array(0x82B3), 0x2F995 => array(0x82BD), 0x2F996 => array(0x82E6),
3344
+					0x2F997 => array(0x26B3C), 0x2F998 => array(0x82E5), 0x2F999 => array(0x831D),
3345
+					0x2F99A => array(0x8363), 0x2F99B => array(0x83AD), 0x2F99C => array(0x8323),
3346
+					0x2F99D => array(0x83BD), 0x2F99E => array(0x83E7), 0x2F99F => array(0x8457),
3347
+					0x2F9A0 => array(0x8353), 0x2F9A1 => array(0x83CA), 0x2F9A2 => array(0x83CC),
3348
+					0x2F9A3 => array(0x83DC), 0x2F9A4 => array(0x26C36), 0x2F9A5 => array(0x26D6B),
3349
+					0x2F9A6 => array(0x26CD5), 0x2F9A7 => array(0x452B), 0x2F9A8 => array(0x84F1),
3350
+					0x2F9A9 => array(0x84F3), 0x2F9AA => array(0x8516), 0x2F9AB => array(0x273CA),
3351
+					0x2F9AC => array(0x8564), 0x2F9AD => array(0x26F2C), 0x2F9AE => array(0x455D),
3352
+					0x2F9AF => array(0x4561), 0x2F9B0 => array(0x26FB1), 0x2F9B1 => array(0x270D2),
3353
+					0x2F9B2 => array(0x456B), 0x2F9B3 => array(0x8650), 0x2F9B4 => array(0x865C),
3354
+					0x2F9B5 => array(0x8667), 0x2F9B6 => array(0x8669), 0x2F9B7 => array(0x86A9),
3355
+					0x2F9B8 => array(0x8688), 0x2F9B9 => array(0x870E), 0x2F9BA => array(0x86E2),
3356
+					0x2F9BB => array(0x8779), 0x2F9BC => array(0x8728), 0x2F9BD => array(0x876B),
3357
+					0x2F9BE => array(0x8786), 0x2F9C0 => array(0x87E1), 0x2F9C1 => array(0x8801),
3358
+					0x2F9C2 => array(0x45F9), 0x2F9C3 => array(0x8860), 0x2F9C4 => array(0x8863),
3359
+					0x2F9C5 => array(0x27667), 0x2F9C6 => array(0x88D7), 0x2F9C7 => array(0x88DE),
3360
+					0x2F9C8 => array(0x4635), 0x2F9C9 => array(0x88FA), 0x2F9CA => array(0x34BB),
3361
+					0x2F9CB => array(0x278AE), 0x2F9CC => array(0x27966), 0x2F9CD => array(0x46BE),
3362
+					0x2F9CE => array(0x46C7), 0x2F9CF => array(0x8AA0), 0x2F9D0 => array(0x8AED),
3363
+					0x2F9D1 => array(0x8B8A), 0x2F9D2 => array(0x8C55), 0x2F9D3 => array(0x27CA8),
3364
+					0x2F9D4 => array(0x8CAB), 0x2F9D5 => array(0x8CC1), 0x2F9D6 => array(0x8D1B),
3365
+					0x2F9D7 => array(0x8D77), 0x2F9D8 => array(0x27F2F), 0x2F9D9 => array(0x20804),
3366
+					0x2F9DA => array(0x8DCB), 0x2F9DB => array(0x8DBC), 0x2F9DC => array(0x8DF0),
3367
+					0x2F9DD => array(0x208DE), 0x2F9DE => array(0x8ED4), 0x2F9DF => array(0x8F38),
3368
+					0x2F9E0 => array(0x285D2), 0x2F9E1 => array(0x285ED), 0x2F9E2 => array(0x9094),
3369
+					0x2F9E3 => array(0x90F1), 0x2F9E4 => array(0x9111), 0x2F9E5 => array(0x2872E),
3370
+					0x2F9E6 => array(0x911B), 0x2F9E7 => array(0x9238), 0x2F9E8 => array(0x92D7),
3371
+					0x2F9E9 => array(0x92D8), 0x2F9EA => array(0x927C), 0x2F9EB => array(0x93F9),
3372
+					0x2F9EC => array(0x9415), 0x2F9ED => array(0x28BFA), 0x2F9EE => array(0x958B),
3373
+					0x2F9EF => array(0x4995), 0x2F9F0 => array(0x95B7), 0x2F9F1 => array(0x28D77),
3374
+					0x2F9F2 => array(0x49E6), 0x2F9F3 => array(0x96C3), 0x2F9F4 => array(0x5DB2),
3375
+					0x2F9F5 => array(0x9723), 0x2F9F6 => array(0x29145), 0x2F9F7 => array(0x2921A),
3376
+					0x2F9F8 => array(0x4A6E), 0x2F9F9 => array(0x4A76), 0x2F9FA => array(0x97E0),
3377
+					0x2F9FB => array(0x2940A), 0x2F9FC => array(0x4AB2), 0x2F9FD => array(0x29496),
3378
+					0x2F9FE => array(0x980B), 0x2F9FF => array(0x980B), 0x2FA00 => array(0x9829),
3379
+					0x2FA01 => array(0x295B6), 0x2FA02 => array(0x98E2), 0x2FA03 => array(0x4B33),
3380
+					0x2FA04 => array(0x9929), 0x2FA05 => array(0x99A7), 0x2FA06 => array(0x99C2),
3381
+					0x2FA07 => array(0x99FE), 0x2FA08 => array(0x4BCE), 0x2FA09 => array(0x29B30),
3382
+					0x2FA0A => array(0x9B12), 0x2FA0B => array(0x9C40), 0x2FA0C => array(0x9CFD),
3383
+					0x2FA0D => array(0x4CCE), 0x2FA0E => array(0x4CED), 0x2FA0F => array(0x9D67),
3384
+					0x2FA10 => array(0x2A0CE), 0x2FA11 => array(0x4CF8), 0x2FA12 => array(0x2A105),
3385
+					0x2FA13 => array(0x2A20E), 0x2FA14 => array(0x2A291), 0x2FA15 => array(0x9EBB),
3386
+					0x2FA16 => array(0x4D56), 0x2FA17 => array(0x9EF9), 0x2FA18 => array(0x9EFE),
3387
+					0x2FA19 => array(0x9F05), 0x2FA1A => array(0x9F0F), 0x2FA1B => array(0x9F16),
3388
+					0x2FA1C => array(0x9F3B), 0x2FA1D => array(0x2A600)
3389
+			),
3390
+			'norm_combcls' => array(0x334 => 1, 0x335 => 1, 0x336 => 1, 0x337 => 1,
3391
+					0x338 => 1, 0x93C => 7, 0x9BC => 7, 0xA3C => 7, 0xABC => 7,
3392
+					0xB3C => 7, 0xCBC => 7, 0x1037 => 7, 0x3099 => 8, 0x309A => 8,
3393
+					0x94D => 9, 0x9CD => 9, 0xA4D => 9, 0xACD => 9, 0xB4D => 9,
3394
+					0xBCD => 9, 0xC4D => 9, 0xCCD => 9, 0xD4D => 9, 0xDCA => 9,
3395
+					0xE3A => 9, 0xF84 => 9, 0x1039 => 9, 0x1714 => 9, 0x1734 => 9,
3396
+					0x17D2 => 9, 0x5B0 => 10, 0x5B1 => 11, 0x5B2 => 12, 0x5B3 => 13,
3397
+					0x5B4 => 14, 0x5B5 => 15, 0x5B6 => 16, 0x5B7 => 17, 0x5B8 => 18,
3398
+					0x5B9 => 19, 0x5BB => 20, 0x5Bc => 21, 0x5BD => 22, 0x5BF => 23,
3399
+					0x5C1 => 24, 0x5C2 => 25, 0xFB1E => 26, 0x64B => 27, 0x64C => 28,
3400
+					0x64D => 29, 0x64E => 30, 0x64F => 31, 0x650 => 32, 0x651 => 33,
3401
+					0x652 => 34, 0x670 => 35, 0x711 => 36, 0xC55 => 84, 0xC56 => 91,
3402
+					0xE38 => 103, 0xE39 => 103, 0xE48 => 107, 0xE49 => 107, 0xE4A => 107,
3403
+					0xE4B => 107, 0xEB8 => 118, 0xEB9 => 118, 0xEC8 => 122, 0xEC9 => 122,
3404
+					0xECA => 122, 0xECB => 122, 0xF71 => 129, 0xF72 => 130, 0xF7A => 130,
3405
+					0xF7B => 130, 0xF7C => 130, 0xF7D => 130, 0xF80 => 130, 0xF74 => 132,
3406
+					0x321 => 202, 0x322 => 202, 0x327 => 202, 0x328 => 202, 0x31B => 216,
3407
+					0xF39 => 216, 0x1D165 => 216, 0x1D166 => 216, 0x1D16E => 216, 0x1D16F => 216,
3408
+					0x1D170 => 216, 0x1D171 => 216, 0x1D172 => 216, 0x302A => 218, 0x316 => 220,
3409
+					0x317 => 220, 0x318 => 220, 0x319 => 220, 0x31C => 220, 0x31D => 220,
3410
+					0x31E => 220, 0x31F => 220, 0x320 => 220, 0x323 => 220, 0x324 => 220,
3411
+					0x325 => 220, 0x326 => 220, 0x329 => 220, 0x32A => 220, 0x32B => 220,
3412
+					0x32C => 220, 0x32D => 220, 0x32E => 220, 0x32F => 220, 0x330 => 220,
3413
+					0x331 => 220, 0x332 => 220, 0x333 => 220, 0x339 => 220, 0x33A => 220,
3414
+					0x33B => 220, 0x33C => 220, 0x347 => 220, 0x348 => 220, 0x349 => 220,
3415
+					0x34D => 220, 0x34E => 220, 0x353 => 220, 0x354 => 220, 0x355 => 220,
3416
+					0x356 => 220, 0x591 => 220, 0x596 => 220, 0x59B => 220, 0x5A3 => 220,
3417
+					0x5A4 => 220, 0x5A5 => 220, 0x5A6 => 220, 0x5A7 => 220, 0x5AA => 220,
3418
+					0x655 => 220, 0x656 => 220, 0x6E3 => 220, 0x6EA => 220, 0x6ED => 220,
3419
+					0x731 => 220, 0x734 => 220, 0x737 => 220, 0x738 => 220, 0x739 => 220,
3420
+					0x73B => 220, 0x73C => 220, 0x73E => 220, 0x742 => 220, 0x744 => 220,
3421
+					0x746 => 220, 0x748 => 220, 0x952 => 220, 0xF18 => 220, 0xF19 => 220,
3422
+					0xF35 => 220, 0xF37 => 220, 0xFC6 => 220, 0x193B => 220, 0x20E8 => 220,
3423
+					0x1D17B => 220, 0x1D17C => 220, 0x1D17D => 220, 0x1D17E => 220, 0x1D17F => 220,
3424
+					0x1D180 => 220, 0x1D181 => 220, 0x1D182 => 220, 0x1D18A => 220, 0x1D18B => 220,
3425
+					0x59A => 222, 0x5AD => 222, 0x1929 => 222, 0x302D => 222, 0x302E => 224,
3426
+					0x302F => 224, 0x1D16D => 226, 0x5AE => 228, 0x18A9 => 228, 0x302B => 228,
3427
+					0x300 => 230, 0x301 => 230, 0x302 => 230, 0x303 => 230, 0x304 => 230,
3428
+					0x305 => 230, 0x306 => 230, 0x307 => 230, 0x308 => 230, 0x309 => 230,
3429
+					0x30A => 230, 0x30B => 230, 0x30C => 230, 0x30D => 230, 0x30E => 230,
3430
+					0x30F => 230, 0x310 => 230, 0x311 => 230, 0x312 => 230, 0x313 => 230,
3431
+					0x314 => 230, 0x33D => 230, 0x33E => 230, 0x33F => 230, 0x340 => 230,
3432
+					0x341 => 230, 0x342 => 230, 0x343 => 230, 0x344 => 230, 0x346 => 230,
3433
+					0x34A => 230, 0x34B => 230, 0x34C => 230, 0x350 => 230, 0x351 => 230,
3434
+					0x352 => 230, 0x357 => 230, 0x363 => 230, 0x364 => 230, 0x365 => 230,
3435
+					0x366 => 230, 0x367 => 230, 0x368 => 230, 0x369 => 230, 0x36A => 230,
3436
+					0x36B => 230, 0x36C => 230, 0x36D => 230, 0x36E => 230, 0x36F => 230,
3437
+					0x483 => 230, 0x484 => 230, 0x485 => 230, 0x486 => 230, 0x592 => 230,
3438
+					0x593 => 230, 0x594 => 230, 0x595 => 230, 0x597 => 230, 0x598 => 230,
3439
+					0x599 => 230, 0x59C => 230, 0x59D => 230, 0x59E => 230, 0x59F => 230,
3440
+					0x5A0 => 230, 0x5A1 => 230, 0x5A8 => 230, 0x5A9 => 230, 0x5AB => 230,
3441
+					0x5AC => 230, 0x5AF => 230, 0x5C4 => 230, 0x610 => 230, 0x611 => 230,
3442
+					0x612 => 230, 0x613 => 230, 0x614 => 230, 0x615 => 230, 0x653 => 230,
3443
+					0x654 => 230, 0x657 => 230, 0x658 => 230, 0x6D6 => 230, 0x6D7 => 230,
3444
+					0x6D8 => 230, 0x6D9 => 230, 0x6DA => 230, 0x6DB => 230, 0x6DC => 230,
3445
+					0x6DF => 230, 0x6E0 => 230, 0x6E1 => 230, 0x6E2 => 230, 0x6E4 => 230,
3446
+					0x6E7 => 230, 0x6E8 => 230, 0x6EB => 230, 0x6EC => 230, 0x730 => 230,
3447
+					0x732 => 230, 0x733 => 230, 0x735 => 230, 0x736 => 230, 0x73A => 230,
3448
+					0x73D => 230, 0x73F => 230, 0x740 => 230, 0x741 => 230, 0x743 => 230,
3449
+					0x745 => 230, 0x747 => 230, 0x749 => 230, 0x74A => 230, 0x951 => 230,
3450
+					0x953 => 230, 0x954 => 230, 0xF82 => 230, 0xF83 => 230, 0xF86 => 230,
3451
+					0xF87 => 230, 0x170D => 230, 0x193A => 230, 0x20D0 => 230, 0x20D1 => 230,
3452
+					0x20D4 => 230, 0x20D5 => 230, 0x20D6 => 230, 0x20D7 => 230, 0x20DB => 230,
3453
+					0x20DC => 230, 0x20E1 => 230, 0x20E7 => 230, 0x20E9 => 230, 0xFE20 => 230,
3454
+					0xFE21 => 230, 0xFE22 => 230, 0xFE23 => 230, 0x1D185 => 230, 0x1D186 => 230,
3455
+					0x1D187 => 230, 0x1D189 => 230, 0x1D188 => 230, 0x1D1AA => 230, 0x1D1AB => 230,
3456
+					0x1D1AC => 230, 0x1D1AD => 230, 0x315 => 232, 0x31A => 232, 0x302C => 232,
3457
+					0x35F => 233, 0x362 => 233, 0x35D => 234, 0x35E => 234, 0x360 => 234,
3458
+					0x361 => 234, 0x345 => 240
3459
+			)
3460
+	);
3461 3461
 }
3462 3462
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +43 added lines, -46 removed lines patch added patch discarded remove patch
@@ -73,16 +73,16 @@  discard block
 block discarded – undo
73 73
     protected $_lcount = 19;
74 74
     protected $_vcount = 21;
75 75
     protected $_tcount = 28;
76
-    protected $_ncount = 588;   // _vcount * _tcount
76
+    protected $_ncount = 588; // _vcount * _tcount
77 77
     protected $_scount = 11172; // _lcount * _tcount * _vcount
78 78
     protected $_error = false;
79 79
     protected static $_mb_string_overload = null;
80 80
     // See {@link set_paramter()} for details of how to change the following
81 81
     // settings from within your script / application
82
-    protected $_api_encoding = 'utf8';   // Default input charset is UTF-8
83
-    protected $_allow_overlong = false;  // Overlong UTF-8 encodings are forbidden
84
-    protected $_strict_mode = false;     // Behave strict or not
85
-    protected $_idn_version = 2003;      // Can be either 2003 (old, default) or 2008
82
+    protected $_api_encoding = 'utf8'; // Default input charset is UTF-8
83
+    protected $_allow_overlong = false; // Overlong UTF-8 encodings are forbidden
84
+    protected $_strict_mode = false; // Behave strict or not
85
+    protected $_idn_version = 2003; // Can be either 2003 (old, default) or 2008
86 86
 
87 87
     /**
88 88
      * the constructor
@@ -140,7 +140,7 @@  discard block
 block discarded – undo
140 140
                             $this->_api_encoding = $v;
141 141
                             break;
142 142
                         default:
143
-                            $this->_error('Set Parameter: Unknown parameter ' . $v . ' for option ' . $k);
143
+                            $this->_error('Set Parameter: Unknown parameter '.$v.' for option '.$k);
144 144
                             return false;
145 145
                     }
146 146
                     break;
@@ -154,7 +154,7 @@  discard block
 block discarded – undo
154 154
                     if (in_array($v, array('2003', '2008'))) {
155 155
                         $this->_idn_version = $v;
156 156
                     } else {
157
-                        $this->_error('Set Parameter: Unknown parameter ' . $v . ' for option ' . $k);
157
+                        $this->_error('Set Parameter: Unknown parameter '.$v.' for option '.$k);
158 158
                     }
159 159
                     break;
160 160
                 case 'encode_german_sz': // Deprecated
@@ -165,7 +165,7 @@  discard block
 block discarded – undo
165 165
                     }
166 166
                     break;
167 167
                 default:
168
-                    $this->_error('Set Parameter: Unknown option ' . $k);
168
+                    $this->_error('Set Parameter: Unknown option '.$k);
169 169
                     return false;
170 170
             }
171 171
         }
@@ -188,7 +188,7 @@  discard block
 block discarded – undo
188 188
                 case 'ucs4_array':
189 189
                     break;
190 190
                 default:
191
-                    $this->_error('Unknown encoding ' . $one_time_encoding);
191
+                    $this->_error('Unknown encoding '.$one_time_encoding);
192 192
                     return false;
193 193
             }
194 194
         }
@@ -206,7 +206,7 @@  discard block
 block discarded – undo
206 206
             list ($email_pref, $input) = explode('@', $input, 2);
207 207
             $arr = explode('.', $input);
208 208
             foreach ($arr as $k => $v) {
209
-                if (preg_match('!^' . preg_quote($this->_punycode_prefix, '!') . '!', $v)) {
209
+                if (preg_match('!^'.preg_quote($this->_punycode_prefix, '!').'!', $v)) {
210 210
                     $conv = $this->_decode($v);
211 211
                     if ($conv) {
212 212
                         $arr[$k] = $conv;
@@ -216,7 +216,7 @@  discard block
 block discarded – undo
216 216
             $input = join('.', $arr);
217 217
             $arr = explode('.', $email_pref);
218 218
             foreach ($arr as $k => $v) {
219
-                if (preg_match('!^' . preg_quote($this->_punycode_prefix, '!') . '!', $v)) {
219
+                if (preg_match('!^'.preg_quote($this->_punycode_prefix, '!').'!', $v)) {
220 220
                     $conv = $this->_decode($v);
221 221
                     if ($conv) {
222 222
                         $arr[$k] = $conv;
@@ -224,7 +224,7 @@  discard block
 block discarded – undo
224 224
                 }
225 225
             }
226 226
             $email_pref = join('.', $arr);
227
-            $return = $email_pref . '@' . $input;
227
+            $return = $email_pref.'@'.$input;
228 228
         } elseif (preg_match('![:\./]!', $input)) { // Or a complete domain name (with or without paths / parameters)
229 229
             // No no in strict mode
230 230
             if ($this->_strict_mode) {
@@ -241,13 +241,13 @@  discard block
 block discarded – undo
241 241
                     }
242 242
                 }
243 243
                 $parsed['host'] = join('.', $arr);
244
-                $return = (empty($parsed['scheme']) ? '' : $parsed['scheme'] . (strtolower($parsed['scheme']) == 'mailto' ? ':' : '://')).
245
-                        (empty($parsed['user']) ? '' : $parsed['user'] . (empty($parsed['pass']) ? '' : ':' . $parsed['pass']) . '@').
244
+                $return = (empty($parsed['scheme']) ? '' : $parsed['scheme'].(strtolower($parsed['scheme']) == 'mailto' ? ':' : '://')).
245
+                        (empty($parsed['user']) ? '' : $parsed['user'].(empty($parsed['pass']) ? '' : ':'.$parsed['pass']).'@').
246 246
                         $parsed['host'].
247
-                        (empty($parsed['port']) ? '' : ':' . $parsed['port']).
247
+                        (empty($parsed['port']) ? '' : ':'.$parsed['port']).
248 248
                         (empty($parsed['path']) ? '' : $parsed['path']).
249
-                        (empty($parsed['query']) ? '' : '?' . $parsed['query']).
250
-                        (empty($parsed['fragment']) ? '' : '#' . $parsed['fragment']);
249
+                        (empty($parsed['query']) ? '' : '?'.$parsed['query']).
250
+                        (empty($parsed['fragment']) ? '' : '#'.$parsed['fragment']);
251 251
             } else { // parse_url seems to have failed, try without it
252 252
                 $arr = explode('.', $input);
253 253
                 foreach ($arr as $k => $v) {
@@ -265,8 +265,8 @@  discard block
 block discarded – undo
265 265
         // The output is UTF-8 by default, other output formats need conversion here
266 266
         // If one time encoding is given, use this, else the objects property
267 267
         switch (($one_time_encoding) ? $one_time_encoding : $this->_api_encoding) {
268
-            case 'utf8':        return $return; // break;
269
-            case 'ucs4_string': return $this->_ucs4_to_ucs4_string($this->_utf8_to_ucs4($return));  // break;
268
+            case 'utf8' : return $return; // break;
269
+            case 'ucs4_string': return $this->_ucs4_to_ucs4_string($this->_utf8_to_ucs4($return)); // break;
270 270
             case 'ucs4_array':  return $this->_utf8_to_ucs4($return); // break;
271 271
             default:            $this->_error('Unsupported output format'); return false;
272 272
         }
@@ -283,15 +283,14 @@  discard block
 block discarded – undo
283 283
         // Forcing conversion of input to UCS4 array
284 284
         // If one time encoding is given, use this, else the objects property
285 285
         switch ($one_time_encoding ? $one_time_encoding : $this->_api_encoding) {
286
-            case 'utf8':
287
-                $decoded = $this->_utf8_to_ucs4($decoded);
286
+            case 'utf8' : $decoded = $this->_utf8_to_ucs4($decoded);
288 287
                 break;
289 288
             case 'ucs4_string':
290 289
                 $decoded = $this->_ucs4_string_to_ucs4($decoded);
291 290
             case 'ucs4_array':
292 291
                 break;
293 292
             default:
294
-                $this->_error('Unsupported input format: ' . ($one_time_encoding ? $one_time_encoding : $this->_api_encoding));
293
+                $this->_error('Unsupported input format: '.($one_time_encoding ? $one_time_encoding : $this->_api_encoding));
295 294
                 return false;
296 295
         }
297 296
 
@@ -380,13 +379,13 @@  discard block
 block discarded – undo
380 379
             }
381 380
         }
382 381
         $parsed['host'] = join('.', $arr);
383
-        $return = (empty($parsed['scheme']) ? '' : $parsed['scheme'] . (strtolower($parsed['scheme']) == 'mailto' ? ':' : '://')).
384
-                (empty($parsed['user']) ? '' : $parsed['user'] . (empty($parsed['pass']) ? '' : ':' . $parsed['pass']) . '@').
382
+        $return = (empty($parsed['scheme']) ? '' : $parsed['scheme'].(strtolower($parsed['scheme']) == 'mailto' ? ':' : '://')).
383
+                (empty($parsed['user']) ? '' : $parsed['user'].(empty($parsed['pass']) ? '' : ':'.$parsed['pass']).'@').
385 384
                 $parsed['host'].
386
-                (empty($parsed['port']) ? '' : ':' . $parsed['port']).
385
+                (empty($parsed['port']) ? '' : ':'.$parsed['port']).
387 386
                 (empty($parsed['path']) ? '' : $parsed['path']).
388
-                (empty($parsed['query']) ? '' : '?' . $parsed['query']).
389
-                (empty($parsed['fragment']) ? '' : '#' . $parsed['fragment']);
387
+                (empty($parsed['query']) ? '' : '?'.$parsed['query']).
388
+                (empty($parsed['fragment']) ? '' : '#'.$parsed['fragment']);
390 389
         return $return;
391 390
     }
392 391
 
@@ -409,11 +408,11 @@  discard block
 block discarded – undo
409 408
     {
410 409
         $decoded = array();
411 410
         // find the Punycode prefix
412
-        if (!preg_match('!^' . preg_quote($this->_punycode_prefix, '!') . '!', $encoded)) {
411
+        if (!preg_match('!^'.preg_quote($this->_punycode_prefix, '!').'!', $encoded)) {
413 412
             $this->_error('This is not a punycode string');
414 413
             return false;
415 414
         }
416
-        $encode_test = preg_replace('!^' . preg_quote($this->_punycode_prefix, '!') . '!', '', $encoded);
415
+        $encode_test = preg_replace('!^'.preg_quote($this->_punycode_prefix, '!').'!', '', $encoded);
417 416
         // If nothing left after removing the prefix, it is hopeless
418 417
         if (!$encode_test) {
419 418
             $this->_error('The given encoded string was empty');
@@ -439,8 +438,7 @@  discard block
 block discarded – undo
439 438
             for ($old_idx = $idx, $w = 1, $k = $this->_base; 1; $k += $this->_base) {
440 439
                 $digit = $this->_decode_digit($encoded{$enco_idx++});
441 440
                 $idx += $digit * $w;
442
-                $t = ($k <= $bias) ? $this->_tmin :
443
-                        (($k >= $bias + $this->_tmax) ? $this->_tmax : ($k - $bias));
441
+                $t = ($k <= $bias) ? $this->_tmin : (($k >= $bias + $this->_tmax) ? $this->_tmax : ($k - $bias));
444 442
                 if ($digit < $t) {
445 443
                     break;
446 444
                 }
@@ -513,7 +511,7 @@  discard block
 block discarded – undo
513 511
             return $encoded; // All codepoints were basic ones
514 512
         }
515 513
         // Start with the prefix; copy it to output
516
-        $encoded = $this->_punycode_prefix . $encoded;
514
+        $encoded = $this->_punycode_prefix.$encoded;
517 515
         // If we have basic code points in output, add an hyphen to the end
518 516
         if ($codecount) {
519 517
             $encoded .= '-';
@@ -540,8 +538,7 @@  discard block
 block discarded – undo
540 538
                     $delta++;
541 539
                 } elseif ($decoded[$i] == $cur_code) {
542 540
                     for ($q = $delta, $k = $this->_base; 1; $k += $this->_base) {
543
-                        $t = ($k <= $bias) ? $this->_tmin :
544
-                                (($k >= $bias + $this->_tmax) ? $this->_tmax : $k - $bias);
541
+                        $t = ($k <= $bias) ? $this->_tmin : (($k >= $bias + $this->_tmax) ? $this->_tmax : $k - $bias);
545 542
                         if ($q < $t) {
546 543
                             break;
547 544
                         }
@@ -628,12 +625,12 @@  discard block
 block discarded – undo
628 625
             }
629 626
             // Try to find prohibited input
630 627
             if (in_array($v, self::$NP['prohibit']) || in_array($v, self::$NP['general_prohibited'])) {
631
-                $this->_error('NAMEPREP: Prohibited input U+' . sprintf('%08X', $v));
628
+                $this->_error('NAMEPREP: Prohibited input U+'.sprintf('%08X', $v));
632 629
                 return false;
633 630
             }
634 631
             foreach (self::$NP['prohibit_ranges'] as $range) {
635 632
                 if ($range[0] <= $v && $v <= $range[1]) {
636
-                    $this->_error('NAMEPREP: Prohibited input U+' . sprintf('%08X', $v));
633
+                    $this->_error('NAMEPREP: Prohibited input U+'.sprintf('%08X', $v));
637 634
                     return false;
638 635
                 }
639 636
             }
@@ -869,7 +866,7 @@  discard block
 block discarded – undo
869 866
                 $output[$out_len] = $v;
870 867
                 ++$out_len;
871 868
                 if ('add' == $mode) {
872
-                    $this->_error('Conversion from UTF-8 to UCS-4 failed: malformed input at byte ' . $k);
869
+                    $this->_error('Conversion from UTF-8 to UCS-4 failed: malformed input at byte '.$k);
873 870
                     return false;
874 871
                 }
875 872
                 continue;
@@ -894,7 +891,7 @@  discard block
 block discarded – undo
894 891
                     $next_byte = 4;
895 892
                     $v = ($v - 252) << 30;
896 893
                 } else {
897
-                    $this->_error('This might be UTF-8, but I don\'t understand it at byte ' . $k);
894
+                    $this->_error('This might be UTF-8, but I don\'t understand it at byte '.$k);
898 895
                     return false;
899 896
                 }
900 897
                 if ('add' == $mode) {
@@ -907,7 +904,7 @@  discard block
 block discarded – undo
907 904
                 if (!$this->_allow_overlong && $test == 'range') {
908 905
                     $test = 'none';
909 906
                     if (($v < 0xA0 && $start_byte == 0xE0) || ($v < 0x90 && $start_byte == 0xF0) || ($v > 0x8F && $start_byte == 0xF4)) {
910
-                        $this->_error('Bogus UTF-8 character detected (out of legal range) at byte ' . $k);
907
+                        $this->_error('Bogus UTF-8 character detected (out of legal range) at byte '.$k);
911 908
                         return false;
912 909
                     }
913 910
                 }
@@ -916,7 +913,7 @@  discard block
 block discarded – undo
916 913
                     $output[($out_len - 1)] += $v;
917 914
                     --$next_byte;
918 915
                 } else {
919
-                    $this->_error('Conversion from UTF-8 to UCS-4 failed: malformed input at byte ' . $k);
916
+                    $this->_error('Conversion from UTF-8 to UCS-4 failed: malformed input at byte '.$k);
920 917
                     return false;
921 918
                 }
922 919
                 if ($next_byte < 0) {
@@ -940,13 +937,13 @@  discard block
 block discarded – undo
940 937
             if ($v < 128) { // 7bit are transferred literally
941 938
                 $output .= chr($v);
942 939
             } elseif ($v < (1 << 11)) { // 2 bytes
943
-                $output .= chr(192 + ($v >> 6)) . chr(128 + ($v & 63));
940
+                $output .= chr(192 + ($v >> 6)).chr(128 + ($v & 63));
944 941
             } elseif ($v < (1 << 16)) { // 3 bytes
945
-                $output .= chr(224 + ($v >> 12)) . chr(128 + (($v >> 6) & 63)) . chr(128 + ($v & 63));
942
+                $output .= chr(224 + ($v >> 12)).chr(128 + (($v >> 6) & 63)).chr(128 + ($v & 63));
946 943
             } elseif ($v < (1 << 21)) { // 4 bytes
947
-                $output .= chr(240 + ($v >> 18)) . chr(128 + (($v >> 12) & 63)) . chr(128 + (($v >> 6) & 63)) . chr(128 + ($v & 63));
944
+                $output .= chr(240 + ($v >> 18)).chr(128 + (($v >> 12) & 63)).chr(128 + (($v >> 6) & 63)).chr(128 + ($v & 63));
948 945
             } else {
949
-                $this->_error('Conversion from UCS-4 to UTF-8 failed: malformed input at byte ' . $k);
946
+                $this->_error('Conversion from UCS-4 to UTF-8 failed: malformed input at byte '.$k);
950 947
                 return false;
951 948
             }
952 949
         }
@@ -965,7 +962,7 @@  discard block
 block discarded – undo
965 962
         // Take array values and split output to 4 bytes per value
966 963
         // The bit mask is 255, which reads &11111111
967 964
         foreach ($input as $v) {
968
-            $output .= chr(($v >> 24) & 255) . chr(($v >> 16) & 255) . chr(($v >> 8) & 255) . chr($v & 255);
965
+            $output .= chr(($v >> 24) & 255).chr(($v >> 16) & 255).chr(($v >> 8) & 255).chr($v & 255);
969 966
         }
970 967
         return $output;
971 968
     }
@@ -995,7 +992,7 @@  discard block
 block discarded – undo
995 992
                 $out_len++;
996 993
                 $output[$out_len] = 0;
997 994
             }
998
-            $output[$out_len] += ord($input{$i}) << (8 * (3 - ($i % 4) ) );
995
+            $output[$out_len] += ord($input{$i}) << (8 * (3 - ($i % 4)));
999 996
         }
1000 997
         return $output;
1001 998
     }
Please login to merge, or discard this patch.
libs/PEAR.1.9.5/HTTP/Request2/CookieJar.php 3 patches
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -425,7 +425,7 @@
 block discarded – undo
425 425
      *
426 426
      * @param string $domain domain name
427 427
      *
428
-     * @return string|bool   registered domain, will return false if $domain is
428
+     * @return false|string   registered domain, will return false if $domain is
429 429
      *                       either invalid or a TLD itself
430 430
      */
431 431
     public static function getRegisteredDomain($domain)
Please login to merge, or discard this patch.
Indentation   +457 added lines, -457 removed lines patch added patch discarded remove patch
@@ -33,462 +33,462 @@
 block discarded – undo
33 33
  */
34 34
 class HTTP_Request2_CookieJar implements Serializable
35 35
 {
36
-    /**
37
-     * Array of stored cookies
38
-     *
39
-     * The array is indexed by domain, path and cookie name
40
-     *   .example.com
41
-     *     /
42
-     *       some_cookie => cookie data
43
-     *     /subdir
44
-     *       other_cookie => cookie data
45
-     *   .example.org
46
-     *     ...
47
-     *
48
-     * @var array
49
-     */
50
-    protected $cookies = array();
51
-
52
-    /**
53
-     * Whether session cookies should be serialized when serializing the jar
54
-     * @var bool
55
-     */
56
-    protected $serializeSession = false;
57
-
58
-    /**
59
-     * Whether Public Suffix List should be used for domain matching
60
-     * @var bool
61
-     */
62
-    protected $useList = true;
63
-
64
-    /**
65
-     * Array with Public Suffix List data
66
-     * @var  array
67
-     * @link http://publicsuffix.org/
68
-     */
69
-    protected static $psl = array();
70
-
71
-    /**
72
-     * Class constructor, sets various options
73
-     *
74
-     * @param bool $serializeSessionCookies Controls serializing session cookies,
75
-     *                                      see {@link serializeSessionCookies()}
76
-     * @param bool $usePublicSuffixList     Controls using Public Suffix List,
77
-     *                                      see {@link usePublicSuffixList()}
78
-     */
79
-    public function __construct(
80
-        $serializeSessionCookies = false, $usePublicSuffixList = true
81
-    ) {
82
-        $this->serializeSessionCookies($serializeSessionCookies);
83
-        $this->usePublicSuffixList($usePublicSuffixList);
84
-    }
85
-
86
-    /**
87
-     * Returns current time formatted in ISO-8601 at UTC timezone
88
-     *
89
-     * @return string
90
-     */
91
-    protected function now()
92
-    {
93
-        $dt = new DateTime();
94
-        $dt->setTimezone(new DateTimeZone('UTC'));
95
-        return $dt->format(DateTime::ISO8601);
96
-    }
97
-
98
-    /**
99
-     * Checks cookie array for correctness, possibly updating its 'domain', 'path' and 'expires' fields
100
-     *
101
-     * The checks are as follows:
102
-     *   - cookie array should contain 'name' and 'value' fields;
103
-     *   - name and value should not contain disallowed symbols;
104
-     *   - 'expires' should be either empty parseable by DateTime;
105
-     *   - 'domain' and 'path' should be either not empty or an URL where
106
-     *     cookie was set should be provided.
107
-     *   - if $setter is provided, then document at that URL should be allowed
108
-     *     to set a cookie for that 'domain'. If $setter is not provided,
109
-     *     then no domain checks will be made.
110
-     *
111
-     * 'expires' field will be converted to ISO8601 format from COOKIE format,
112
-     * 'domain' and 'path' will be set from setter URL if empty.
113
-     *
114
-     * @param array    $cookie cookie data, as returned by
115
-     *                         {@link HTTP_Request2_Response::getCookies()}
116
-     * @param Net_URL2 $setter URL of the document that sent Set-Cookie header
117
-     *
118
-     * @return   array    Updated cookie array
119
-     * @throws   HTTP_Request2_LogicException
120
-     * @throws   HTTP_Request2_MessageException
121
-     */
122
-    protected function checkAndUpdateFields(array $cookie, Net_URL2 $setter = null)
123
-    {
124
-        if ($missing = array_diff(array('name', 'value'), array_keys($cookie))) {
125
-            throw new HTTP_Request2_LogicException(
126
-                "Cookie array should contain 'name' and 'value' fields",
127
-                HTTP_Request2_Exception::MISSING_VALUE
128
-            );
129
-        }
130
-        if (preg_match(HTTP_Request2::REGEXP_INVALID_COOKIE, $cookie['name'])) {
131
-            throw new HTTP_Request2_LogicException(
132
-                "Invalid cookie name: '{$cookie['name']}'",
133
-                HTTP_Request2_Exception::INVALID_ARGUMENT
134
-            );
135
-        }
136
-        if (preg_match(HTTP_Request2::REGEXP_INVALID_COOKIE, $cookie['value'])) {
137
-            throw new HTTP_Request2_LogicException(
138
-                "Invalid cookie value: '{$cookie['value']}'",
139
-                HTTP_Request2_Exception::INVALID_ARGUMENT
140
-            );
141
-        }
142
-        $cookie += array('domain' => '', 'path' => '', 'expires' => null, 'secure' => false);
143
-
144
-        // Need ISO-8601 date @ UTC timezone
145
-        if (!empty($cookie['expires'])
146
-            && !preg_match('/^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+0000$/', $cookie['expires'])
147
-        ) {
148
-            try {
149
-                $dt = new DateTime($cookie['expires']);
150
-                $dt->setTimezone(new DateTimeZone('UTC'));
151
-                $cookie['expires'] = $dt->format(DateTime::ISO8601);
152
-            } catch (Exception $e) {
153
-                throw new HTTP_Request2_LogicException($e->getMessage());
154
-            }
155
-        }
156
-
157
-        if (empty($cookie['domain']) || empty($cookie['path'])) {
158
-            if (!$setter) {
159
-                throw new HTTP_Request2_LogicException(
160
-                    'Cookie misses domain and/or path component, cookie setter URL needed',
161
-                    HTTP_Request2_Exception::MISSING_VALUE
162
-                );
163
-            }
164
-            if (empty($cookie['domain'])) {
165
-                if ($host = $setter->getHost()) {
166
-                    $cookie['domain'] = $host;
167
-                } else {
168
-                    throw new HTTP_Request2_LogicException(
169
-                        'Setter URL does not contain host part, can\'t set cookie domain',
170
-                        HTTP_Request2_Exception::MISSING_VALUE
171
-                    );
172
-                }
173
-            }
174
-            if (empty($cookie['path'])) {
175
-                $path = $setter->getPath();
176
-                $cookie['path'] = empty($path)? '/': substr($path, 0, strrpos($path, '/') + 1);
177
-            }
178
-        }
179
-
180
-        if ($setter && !$this->domainMatch($setter->getHost(), $cookie['domain'])) {
181
-            throw new HTTP_Request2_MessageException(
182
-                "Domain " . $setter->getHost() . " cannot set cookies for "
183
-                . $cookie['domain']
184
-            );
185
-        }
186
-
187
-        return $cookie;
188
-    }
189
-
190
-    /**
191
-     * Stores a cookie in the jar
192
-     *
193
-     * @param array    $cookie cookie data, as returned by
194
-     *                         {@link HTTP_Request2_Response::getCookies()}
195
-     * @param Net_URL2 $setter URL of the document that sent Set-Cookie header
196
-     *
197
-     * @throws   HTTP_Request2_Exception
198
-     */
199
-    public function store(array $cookie, Net_URL2 $setter = null)
200
-    {
201
-        $cookie = $this->checkAndUpdateFields($cookie, $setter);
202
-
203
-        if (strlen($cookie['value'])
204
-            && (is_null($cookie['expires']) || $cookie['expires'] > $this->now())
205
-        ) {
206
-            if (!isset($this->cookies[$cookie['domain']])) {
207
-                $this->cookies[$cookie['domain']] = array();
208
-            }
209
-            if (!isset($this->cookies[$cookie['domain']][$cookie['path']])) {
210
-                $this->cookies[$cookie['domain']][$cookie['path']] = array();
211
-            }
212
-            $this->cookies[$cookie['domain']][$cookie['path']][$cookie['name']] = $cookie;
213
-
214
-        } elseif (isset($this->cookies[$cookie['domain']][$cookie['path']][$cookie['name']])) {
215
-            unset($this->cookies[$cookie['domain']][$cookie['path']][$cookie['name']]);
216
-        }
217
-    }
218
-
219
-    /**
220
-     * Adds cookies set in HTTP response to the jar
221
-     *
222
-     * @param HTTP_Request2_Response $response HTTP response message
223
-     * @param Net_URL2               $setter   original request URL, needed for
224
-     *                               setting default domain/path
225
-     */
226
-    public function addCookiesFromResponse(HTTP_Request2_Response $response, Net_URL2 $setter)
227
-    {
228
-        foreach ($response->getCookies() as $cookie) {
229
-            $this->store($cookie, $setter);
230
-        }
231
-    }
232
-
233
-    /**
234
-     * Returns all cookies matching a given request URL
235
-     *
236
-     * The following checks are made:
237
-     *   - cookie domain should match request host
238
-     *   - cookie path should be a prefix for request path
239
-     *   - 'secure' cookies will only be sent for HTTPS requests
240
-     *
241
-     * @param Net_URL2 $url      Request url
242
-     * @param bool     $asString Whether to return cookies as string for "Cookie: " header
243
-     *
244
-     * @return array|string Matching cookies
245
-     */
246
-    public function getMatching(Net_URL2 $url, $asString = false)
247
-    {
248
-        $host   = $url->getHost();
249
-        $path   = $url->getPath();
250
-        $secure = 0 == strcasecmp($url->getScheme(), 'https');
251
-
252
-        $matched = $ret = array();
253
-        foreach (array_keys($this->cookies) as $domain) {
254
-            if ($this->domainMatch($host, $domain)) {
255
-                foreach (array_keys($this->cookies[$domain]) as $cPath) {
256
-                    if (0 === strpos($path, $cPath)) {
257
-                        foreach ($this->cookies[$domain][$cPath] as $name => $cookie) {
258
-                            if (!$cookie['secure'] || $secure) {
259
-                                $matched[$name][strlen($cookie['path'])] = $cookie;
260
-                            }
261
-                        }
262
-                    }
263
-                }
264
-            }
265
-        }
266
-        foreach ($matched as $cookies) {
267
-            krsort($cookies);
268
-            $ret = array_merge($ret, $cookies);
269
-        }
270
-        if (!$asString) {
271
-            return $ret;
272
-        } else {
273
-            $str = '';
274
-            foreach ($ret as $c) {
275
-                $str .= (empty($str)? '': '; ') . $c['name'] . '=' . $c['value'];
276
-            }
277
-            return $str;
278
-        }
279
-    }
280
-
281
-    /**
282
-     * Returns all cookies stored in a jar
283
-     *
284
-     * @return array
285
-     */
286
-    public function getAll()
287
-    {
288
-        $cookies = array();
289
-        foreach (array_keys($this->cookies) as $domain) {
290
-            foreach (array_keys($this->cookies[$domain]) as $path) {
291
-                foreach ($this->cookies[$domain][$path] as $name => $cookie) {
292
-                    $cookies[] = $cookie;
293
-                }
294
-            }
295
-        }
296
-        return $cookies;
297
-    }
298
-
299
-    /**
300
-     * Sets whether session cookies should be serialized when serializing the jar
301
-     *
302
-     * @param boolean $serialize serialize?
303
-     */
304
-    public function serializeSessionCookies($serialize)
305
-    {
306
-        $this->serializeSession = (bool)$serialize;
307
-    }
308
-
309
-    /**
310
-     * Sets whether Public Suffix List should be used for restricting cookie-setting
311
-     *
312
-     * Without PSL {@link domainMatch()} will only prevent setting cookies for
313
-     * top-level domains like '.com' or '.org'. However, it will not prevent
314
-     * setting a cookie for '.co.uk' even though only third-level registrations
315
-     * are possible in .uk domain.
316
-     *
317
-     * With the List it is possible to find the highest level at which a domain
318
-     * may be registered for a particular top-level domain and consequently
319
-     * prevent cookies set for '.co.uk' or '.msk.ru'. The same list is used by
320
-     * Firefox, Chrome and Opera browsers to restrict cookie setting.
321
-     *
322
-     * Note that PSL is licensed differently to HTTP_Request2 package (refer to
323
-     * the license information in public-suffix-list.php), so you can disable
324
-     * its use if this is an issue for you.
325
-     *
326
-     * @param boolean $useList use the list?
327
-     *
328
-     * @link     http://publicsuffix.org/learn/
329
-     */
330
-    public function usePublicSuffixList($useList)
331
-    {
332
-        $this->useList = (bool)$useList;
333
-    }
334
-
335
-    /**
336
-     * Returns string representation of object
337
-     *
338
-     * @return string
339
-     *
340
-     * @see    Serializable::serialize()
341
-     */
342
-    public function serialize()
343
-    {
344
-        $cookies = $this->getAll();
345
-        if (!$this->serializeSession) {
346
-            for ($i = count($cookies) - 1; $i >= 0; $i--) {
347
-                if (empty($cookies[$i]['expires'])) {
348
-                    unset($cookies[$i]);
349
-                }
350
-            }
351
-        }
352
-        return serialize(array(
353
-            'cookies'          => $cookies,
354
-            'serializeSession' => $this->serializeSession,
355
-            'useList'          => $this->useList
356
-        ));
357
-    }
358
-
359
-    /**
360
-     * Constructs the object from serialized string
361
-     *
362
-     * @param string $serialized string representation
363
-     *
364
-     * @see   Serializable::unserialize()
365
-     */
366
-    public function unserialize($serialized)
367
-    {
368
-        $data = unserialize($serialized);
369
-        $now  = $this->now();
370
-        $this->serializeSessionCookies($data['serializeSession']);
371
-        $this->usePublicSuffixList($data['useList']);
372
-        foreach ($data['cookies'] as $cookie) {
373
-            if (!empty($cookie['expires']) && $cookie['expires'] <= $now) {
374
-                continue;
375
-            }
376
-            if (!isset($this->cookies[$cookie['domain']])) {
377
-                $this->cookies[$cookie['domain']] = array();
378
-            }
379
-            if (!isset($this->cookies[$cookie['domain']][$cookie['path']])) {
380
-                $this->cookies[$cookie['domain']][$cookie['path']] = array();
381
-            }
382
-            $this->cookies[$cookie['domain']][$cookie['path']][$cookie['name']] = $cookie;
383
-        }
384
-    }
385
-
386
-    /**
387
-     * Checks whether a cookie domain matches a request host.
388
-     *
389
-     * The method is used by {@link store()} to check for whether a document
390
-     * at given URL can set a cookie with a given domain attribute and by
391
-     * {@link getMatching()} to find cookies matching the request URL.
392
-     *
393
-     * @param string $requestHost  request host
394
-     * @param string $cookieDomain cookie domain
395
-     *
396
-     * @return   bool    match success
397
-     */
398
-    public function domainMatch($requestHost, $cookieDomain)
399
-    {
400
-        if ($requestHost == $cookieDomain) {
401
-            return true;
402
-        }
403
-        // IP address, we require exact match
404
-        if (preg_match('/^(?:\d{1,3}\.){3}\d{1,3}$/', $requestHost)) {
405
-            return false;
406
-        }
407
-        if ('.' != $cookieDomain[0]) {
408
-            $cookieDomain = '.' . $cookieDomain;
409
-        }
410
-        // prevents setting cookies for '.com' and similar domains
411
-        if (!$this->useList && substr_count($cookieDomain, '.') < 2
412
-            || $this->useList && !self::getRegisteredDomain($cookieDomain)
413
-        ) {
414
-            return false;
415
-        }
416
-        return substr('.' . $requestHost, -strlen($cookieDomain)) == $cookieDomain;
417
-    }
418
-
419
-    /**
420
-     * Removes subdomains to get the registered domain (the first after top-level)
421
-     *
422
-     * The method will check Public Suffix List to find out where top-level
423
-     * domain ends and registered domain starts. It will remove domain parts
424
-     * to the left of registered one.
425
-     *
426
-     * @param string $domain domain name
427
-     *
428
-     * @return string|bool   registered domain, will return false if $domain is
429
-     *                       either invalid or a TLD itself
430
-     */
431
-    public static function getRegisteredDomain($domain)
432
-    {
433
-        $domainParts = explode('.', ltrim($domain, '.'));
434
-
435
-        // load the list if needed
436
-        if (empty(self::$psl)) {
437
-            $path = '@data_dir@' . DIRECTORY_SEPARATOR . 'HTTP_Request2';
438
-            if (0 === strpos($path, '@' . 'data_dir@')) {
439
-                $path = realpath(
440
-                    dirname(__FILE__) . DIRECTORY_SEPARATOR . '..'
441
-                    . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'data'
442
-                );
443
-            }
444
-            self::$psl = include_once $path . DIRECTORY_SEPARATOR . 'public-suffix-list.php';
445
-        }
446
-
447
-        if (!($result = self::checkDomainsList($domainParts, self::$psl))) {
448
-            // known TLD, invalid domain name
449
-            return false;
450
-        }
451
-
452
-        // unknown TLD
453
-        if (!strpos($result, '.')) {
454
-            // fallback to checking that domain "has at least two dots"
455
-            if (2 > ($count = count($domainParts))) {
456
-                return false;
457
-            }
458
-            return $domainParts[$count - 2] . '.' . $domainParts[$count - 1];
459
-        }
460
-        return $result;
461
-    }
462
-
463
-    /**
464
-     * Recursive helper method for {@link getRegisteredDomain()}
465
-     *
466
-     * @param array $domainParts remaining domain parts
467
-     * @param mixed $listNode    node in {@link HTTP_Request2_CookieJar::$psl} to check
468
-     *
469
-     * @return string|null   concatenated domain parts, null in case of error
470
-     */
471
-    protected static function checkDomainsList(array $domainParts, $listNode)
472
-    {
473
-        $sub    = array_pop($domainParts);
474
-        $result = null;
475
-
476
-        if (!is_array($listNode) || is_null($sub)
477
-            || array_key_exists('!' . $sub, $listNode)
478
-        ) {
479
-            return $sub;
480
-
481
-        } elseif (array_key_exists($sub, $listNode)) {
482
-            $result = self::checkDomainsList($domainParts, $listNode[$sub]);
483
-
484
-        } elseif (array_key_exists('*', $listNode)) {
485
-            $result = self::checkDomainsList($domainParts, $listNode['*']);
486
-
487
-        } else {
488
-            return $sub;
489
-        }
490
-
491
-        return (strlen($result) > 0) ? ($result . '.' . $sub) : null;
492
-    }
36
+	/**
37
+	 * Array of stored cookies
38
+	 *
39
+	 * The array is indexed by domain, path and cookie name
40
+	 *   .example.com
41
+	 *     /
42
+	 *       some_cookie => cookie data
43
+	 *     /subdir
44
+	 *       other_cookie => cookie data
45
+	 *   .example.org
46
+	 *     ...
47
+	 *
48
+	 * @var array
49
+	 */
50
+	protected $cookies = array();
51
+
52
+	/**
53
+	 * Whether session cookies should be serialized when serializing the jar
54
+	 * @var bool
55
+	 */
56
+	protected $serializeSession = false;
57
+
58
+	/**
59
+	 * Whether Public Suffix List should be used for domain matching
60
+	 * @var bool
61
+	 */
62
+	protected $useList = true;
63
+
64
+	/**
65
+	 * Array with Public Suffix List data
66
+	 * @var  array
67
+	 * @link http://publicsuffix.org/
68
+	 */
69
+	protected static $psl = array();
70
+
71
+	/**
72
+	 * Class constructor, sets various options
73
+	 *
74
+	 * @param bool $serializeSessionCookies Controls serializing session cookies,
75
+	 *                                      see {@link serializeSessionCookies()}
76
+	 * @param bool $usePublicSuffixList     Controls using Public Suffix List,
77
+	 *                                      see {@link usePublicSuffixList()}
78
+	 */
79
+	public function __construct(
80
+		$serializeSessionCookies = false, $usePublicSuffixList = true
81
+	) {
82
+		$this->serializeSessionCookies($serializeSessionCookies);
83
+		$this->usePublicSuffixList($usePublicSuffixList);
84
+	}
85
+
86
+	/**
87
+	 * Returns current time formatted in ISO-8601 at UTC timezone
88
+	 *
89
+	 * @return string
90
+	 */
91
+	protected function now()
92
+	{
93
+		$dt = new DateTime();
94
+		$dt->setTimezone(new DateTimeZone('UTC'));
95
+		return $dt->format(DateTime::ISO8601);
96
+	}
97
+
98
+	/**
99
+	 * Checks cookie array for correctness, possibly updating its 'domain', 'path' and 'expires' fields
100
+	 *
101
+	 * The checks are as follows:
102
+	 *   - cookie array should contain 'name' and 'value' fields;
103
+	 *   - name and value should not contain disallowed symbols;
104
+	 *   - 'expires' should be either empty parseable by DateTime;
105
+	 *   - 'domain' and 'path' should be either not empty or an URL where
106
+	 *     cookie was set should be provided.
107
+	 *   - if $setter is provided, then document at that URL should be allowed
108
+	 *     to set a cookie for that 'domain'. If $setter is not provided,
109
+	 *     then no domain checks will be made.
110
+	 *
111
+	 * 'expires' field will be converted to ISO8601 format from COOKIE format,
112
+	 * 'domain' and 'path' will be set from setter URL if empty.
113
+	 *
114
+	 * @param array    $cookie cookie data, as returned by
115
+	 *                         {@link HTTP_Request2_Response::getCookies()}
116
+	 * @param Net_URL2 $setter URL of the document that sent Set-Cookie header
117
+	 *
118
+	 * @return   array    Updated cookie array
119
+	 * @throws   HTTP_Request2_LogicException
120
+	 * @throws   HTTP_Request2_MessageException
121
+	 */
122
+	protected function checkAndUpdateFields(array $cookie, Net_URL2 $setter = null)
123
+	{
124
+		if ($missing = array_diff(array('name', 'value'), array_keys($cookie))) {
125
+			throw new HTTP_Request2_LogicException(
126
+				"Cookie array should contain 'name' and 'value' fields",
127
+				HTTP_Request2_Exception::MISSING_VALUE
128
+			);
129
+		}
130
+		if (preg_match(HTTP_Request2::REGEXP_INVALID_COOKIE, $cookie['name'])) {
131
+			throw new HTTP_Request2_LogicException(
132
+				"Invalid cookie name: '{$cookie['name']}'",
133
+				HTTP_Request2_Exception::INVALID_ARGUMENT
134
+			);
135
+		}
136
+		if (preg_match(HTTP_Request2::REGEXP_INVALID_COOKIE, $cookie['value'])) {
137
+			throw new HTTP_Request2_LogicException(
138
+				"Invalid cookie value: '{$cookie['value']}'",
139
+				HTTP_Request2_Exception::INVALID_ARGUMENT
140
+			);
141
+		}
142
+		$cookie += array('domain' => '', 'path' => '', 'expires' => null, 'secure' => false);
143
+
144
+		// Need ISO-8601 date @ UTC timezone
145
+		if (!empty($cookie['expires'])
146
+			&& !preg_match('/^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+0000$/', $cookie['expires'])
147
+		) {
148
+			try {
149
+				$dt = new DateTime($cookie['expires']);
150
+				$dt->setTimezone(new DateTimeZone('UTC'));
151
+				$cookie['expires'] = $dt->format(DateTime::ISO8601);
152
+			} catch (Exception $e) {
153
+				throw new HTTP_Request2_LogicException($e->getMessage());
154
+			}
155
+		}
156
+
157
+		if (empty($cookie['domain']) || empty($cookie['path'])) {
158
+			if (!$setter) {
159
+				throw new HTTP_Request2_LogicException(
160
+					'Cookie misses domain and/or path component, cookie setter URL needed',
161
+					HTTP_Request2_Exception::MISSING_VALUE
162
+				);
163
+			}
164
+			if (empty($cookie['domain'])) {
165
+				if ($host = $setter->getHost()) {
166
+					$cookie['domain'] = $host;
167
+				} else {
168
+					throw new HTTP_Request2_LogicException(
169
+						'Setter URL does not contain host part, can\'t set cookie domain',
170
+						HTTP_Request2_Exception::MISSING_VALUE
171
+					);
172
+				}
173
+			}
174
+			if (empty($cookie['path'])) {
175
+				$path = $setter->getPath();
176
+				$cookie['path'] = empty($path)? '/': substr($path, 0, strrpos($path, '/') + 1);
177
+			}
178
+		}
179
+
180
+		if ($setter && !$this->domainMatch($setter->getHost(), $cookie['domain'])) {
181
+			throw new HTTP_Request2_MessageException(
182
+				"Domain " . $setter->getHost() . " cannot set cookies for "
183
+				. $cookie['domain']
184
+			);
185
+		}
186
+
187
+		return $cookie;
188
+	}
189
+
190
+	/**
191
+	 * Stores a cookie in the jar
192
+	 *
193
+	 * @param array    $cookie cookie data, as returned by
194
+	 *                         {@link HTTP_Request2_Response::getCookies()}
195
+	 * @param Net_URL2 $setter URL of the document that sent Set-Cookie header
196
+	 *
197
+	 * @throws   HTTP_Request2_Exception
198
+	 */
199
+	public function store(array $cookie, Net_URL2 $setter = null)
200
+	{
201
+		$cookie = $this->checkAndUpdateFields($cookie, $setter);
202
+
203
+		if (strlen($cookie['value'])
204
+			&& (is_null($cookie['expires']) || $cookie['expires'] > $this->now())
205
+		) {
206
+			if (!isset($this->cookies[$cookie['domain']])) {
207
+				$this->cookies[$cookie['domain']] = array();
208
+			}
209
+			if (!isset($this->cookies[$cookie['domain']][$cookie['path']])) {
210
+				$this->cookies[$cookie['domain']][$cookie['path']] = array();
211
+			}
212
+			$this->cookies[$cookie['domain']][$cookie['path']][$cookie['name']] = $cookie;
213
+
214
+		} elseif (isset($this->cookies[$cookie['domain']][$cookie['path']][$cookie['name']])) {
215
+			unset($this->cookies[$cookie['domain']][$cookie['path']][$cookie['name']]);
216
+		}
217
+	}
218
+
219
+	/**
220
+	 * Adds cookies set in HTTP response to the jar
221
+	 *
222
+	 * @param HTTP_Request2_Response $response HTTP response message
223
+	 * @param Net_URL2               $setter   original request URL, needed for
224
+	 *                               setting default domain/path
225
+	 */
226
+	public function addCookiesFromResponse(HTTP_Request2_Response $response, Net_URL2 $setter)
227
+	{
228
+		foreach ($response->getCookies() as $cookie) {
229
+			$this->store($cookie, $setter);
230
+		}
231
+	}
232
+
233
+	/**
234
+	 * Returns all cookies matching a given request URL
235
+	 *
236
+	 * The following checks are made:
237
+	 *   - cookie domain should match request host
238
+	 *   - cookie path should be a prefix for request path
239
+	 *   - 'secure' cookies will only be sent for HTTPS requests
240
+	 *
241
+	 * @param Net_URL2 $url      Request url
242
+	 * @param bool     $asString Whether to return cookies as string for "Cookie: " header
243
+	 *
244
+	 * @return array|string Matching cookies
245
+	 */
246
+	public function getMatching(Net_URL2 $url, $asString = false)
247
+	{
248
+		$host   = $url->getHost();
249
+		$path   = $url->getPath();
250
+		$secure = 0 == strcasecmp($url->getScheme(), 'https');
251
+
252
+		$matched = $ret = array();
253
+		foreach (array_keys($this->cookies) as $domain) {
254
+			if ($this->domainMatch($host, $domain)) {
255
+				foreach (array_keys($this->cookies[$domain]) as $cPath) {
256
+					if (0 === strpos($path, $cPath)) {
257
+						foreach ($this->cookies[$domain][$cPath] as $name => $cookie) {
258
+							if (!$cookie['secure'] || $secure) {
259
+								$matched[$name][strlen($cookie['path'])] = $cookie;
260
+							}
261
+						}
262
+					}
263
+				}
264
+			}
265
+		}
266
+		foreach ($matched as $cookies) {
267
+			krsort($cookies);
268
+			$ret = array_merge($ret, $cookies);
269
+		}
270
+		if (!$asString) {
271
+			return $ret;
272
+		} else {
273
+			$str = '';
274
+			foreach ($ret as $c) {
275
+				$str .= (empty($str)? '': '; ') . $c['name'] . '=' . $c['value'];
276
+			}
277
+			return $str;
278
+		}
279
+	}
280
+
281
+	/**
282
+	 * Returns all cookies stored in a jar
283
+	 *
284
+	 * @return array
285
+	 */
286
+	public function getAll()
287
+	{
288
+		$cookies = array();
289
+		foreach (array_keys($this->cookies) as $domain) {
290
+			foreach (array_keys($this->cookies[$domain]) as $path) {
291
+				foreach ($this->cookies[$domain][$path] as $name => $cookie) {
292
+					$cookies[] = $cookie;
293
+				}
294
+			}
295
+		}
296
+		return $cookies;
297
+	}
298
+
299
+	/**
300
+	 * Sets whether session cookies should be serialized when serializing the jar
301
+	 *
302
+	 * @param boolean $serialize serialize?
303
+	 */
304
+	public function serializeSessionCookies($serialize)
305
+	{
306
+		$this->serializeSession = (bool)$serialize;
307
+	}
308
+
309
+	/**
310
+	 * Sets whether Public Suffix List should be used for restricting cookie-setting
311
+	 *
312
+	 * Without PSL {@link domainMatch()} will only prevent setting cookies for
313
+	 * top-level domains like '.com' or '.org'. However, it will not prevent
314
+	 * setting a cookie for '.co.uk' even though only third-level registrations
315
+	 * are possible in .uk domain.
316
+	 *
317
+	 * With the List it is possible to find the highest level at which a domain
318
+	 * may be registered for a particular top-level domain and consequently
319
+	 * prevent cookies set for '.co.uk' or '.msk.ru'. The same list is used by
320
+	 * Firefox, Chrome and Opera browsers to restrict cookie setting.
321
+	 *
322
+	 * Note that PSL is licensed differently to HTTP_Request2 package (refer to
323
+	 * the license information in public-suffix-list.php), so you can disable
324
+	 * its use if this is an issue for you.
325
+	 *
326
+	 * @param boolean $useList use the list?
327
+	 *
328
+	 * @link     http://publicsuffix.org/learn/
329
+	 */
330
+	public function usePublicSuffixList($useList)
331
+	{
332
+		$this->useList = (bool)$useList;
333
+	}
334
+
335
+	/**
336
+	 * Returns string representation of object
337
+	 *
338
+	 * @return string
339
+	 *
340
+	 * @see    Serializable::serialize()
341
+	 */
342
+	public function serialize()
343
+	{
344
+		$cookies = $this->getAll();
345
+		if (!$this->serializeSession) {
346
+			for ($i = count($cookies) - 1; $i >= 0; $i--) {
347
+				if (empty($cookies[$i]['expires'])) {
348
+					unset($cookies[$i]);
349
+				}
350
+			}
351
+		}
352
+		return serialize(array(
353
+			'cookies'          => $cookies,
354
+			'serializeSession' => $this->serializeSession,
355
+			'useList'          => $this->useList
356
+		));
357
+	}
358
+
359
+	/**
360
+	 * Constructs the object from serialized string
361
+	 *
362
+	 * @param string $serialized string representation
363
+	 *
364
+	 * @see   Serializable::unserialize()
365
+	 */
366
+	public function unserialize($serialized)
367
+	{
368
+		$data = unserialize($serialized);
369
+		$now  = $this->now();
370
+		$this->serializeSessionCookies($data['serializeSession']);
371
+		$this->usePublicSuffixList($data['useList']);
372
+		foreach ($data['cookies'] as $cookie) {
373
+			if (!empty($cookie['expires']) && $cookie['expires'] <= $now) {
374
+				continue;
375
+			}
376
+			if (!isset($this->cookies[$cookie['domain']])) {
377
+				$this->cookies[$cookie['domain']] = array();
378
+			}
379
+			if (!isset($this->cookies[$cookie['domain']][$cookie['path']])) {
380
+				$this->cookies[$cookie['domain']][$cookie['path']] = array();
381
+			}
382
+			$this->cookies[$cookie['domain']][$cookie['path']][$cookie['name']] = $cookie;
383
+		}
384
+	}
385
+
386
+	/**
387
+	 * Checks whether a cookie domain matches a request host.
388
+	 *
389
+	 * The method is used by {@link store()} to check for whether a document
390
+	 * at given URL can set a cookie with a given domain attribute and by
391
+	 * {@link getMatching()} to find cookies matching the request URL.
392
+	 *
393
+	 * @param string $requestHost  request host
394
+	 * @param string $cookieDomain cookie domain
395
+	 *
396
+	 * @return   bool    match success
397
+	 */
398
+	public function domainMatch($requestHost, $cookieDomain)
399
+	{
400
+		if ($requestHost == $cookieDomain) {
401
+			return true;
402
+		}
403
+		// IP address, we require exact match
404
+		if (preg_match('/^(?:\d{1,3}\.){3}\d{1,3}$/', $requestHost)) {
405
+			return false;
406
+		}
407
+		if ('.' != $cookieDomain[0]) {
408
+			$cookieDomain = '.' . $cookieDomain;
409
+		}
410
+		// prevents setting cookies for '.com' and similar domains
411
+		if (!$this->useList && substr_count($cookieDomain, '.') < 2
412
+			|| $this->useList && !self::getRegisteredDomain($cookieDomain)
413
+		) {
414
+			return false;
415
+		}
416
+		return substr('.' . $requestHost, -strlen($cookieDomain)) == $cookieDomain;
417
+	}
418
+
419
+	/**
420
+	 * Removes subdomains to get the registered domain (the first after top-level)
421
+	 *
422
+	 * The method will check Public Suffix List to find out where top-level
423
+	 * domain ends and registered domain starts. It will remove domain parts
424
+	 * to the left of registered one.
425
+	 *
426
+	 * @param string $domain domain name
427
+	 *
428
+	 * @return string|bool   registered domain, will return false if $domain is
429
+	 *                       either invalid or a TLD itself
430
+	 */
431
+	public static function getRegisteredDomain($domain)
432
+	{
433
+		$domainParts = explode('.', ltrim($domain, '.'));
434
+
435
+		// load the list if needed
436
+		if (empty(self::$psl)) {
437
+			$path = '@data_dir@' . DIRECTORY_SEPARATOR . 'HTTP_Request2';
438
+			if (0 === strpos($path, '@' . 'data_dir@')) {
439
+				$path = realpath(
440
+					dirname(__FILE__) . DIRECTORY_SEPARATOR . '..'
441
+					. DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'data'
442
+				);
443
+			}
444
+			self::$psl = include_once $path . DIRECTORY_SEPARATOR . 'public-suffix-list.php';
445
+		}
446
+
447
+		if (!($result = self::checkDomainsList($domainParts, self::$psl))) {
448
+			// known TLD, invalid domain name
449
+			return false;
450
+		}
451
+
452
+		// unknown TLD
453
+		if (!strpos($result, '.')) {
454
+			// fallback to checking that domain "has at least two dots"
455
+			if (2 > ($count = count($domainParts))) {
456
+				return false;
457
+			}
458
+			return $domainParts[$count - 2] . '.' . $domainParts[$count - 1];
459
+		}
460
+		return $result;
461
+	}
462
+
463
+	/**
464
+	 * Recursive helper method for {@link getRegisteredDomain()}
465
+	 *
466
+	 * @param array $domainParts remaining domain parts
467
+	 * @param mixed $listNode    node in {@link HTTP_Request2_CookieJar::$psl} to check
468
+	 *
469
+	 * @return string|null   concatenated domain parts, null in case of error
470
+	 */
471
+	protected static function checkDomainsList(array $domainParts, $listNode)
472
+	{
473
+		$sub    = array_pop($domainParts);
474
+		$result = null;
475
+
476
+		if (!is_array($listNode) || is_null($sub)
477
+			|| array_key_exists('!' . $sub, $listNode)
478
+		) {
479
+			return $sub;
480
+
481
+		} elseif (array_key_exists($sub, $listNode)) {
482
+			$result = self::checkDomainsList($domainParts, $listNode[$sub]);
483
+
484
+		} elseif (array_key_exists('*', $listNode)) {
485
+			$result = self::checkDomainsList($domainParts, $listNode['*']);
486
+
487
+		} else {
488
+			return $sub;
489
+		}
490
+
491
+		return (strlen($result) > 0) ? ($result . '.' . $sub) : null;
492
+	}
493 493
 }
494 494
 ?>
495 495
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +15 added lines, -15 removed lines patch added patch discarded remove patch
@@ -173,13 +173,13 @@  discard block
 block discarded – undo
173 173
             }
174 174
             if (empty($cookie['path'])) {
175 175
                 $path = $setter->getPath();
176
-                $cookie['path'] = empty($path)? '/': substr($path, 0, strrpos($path, '/') + 1);
176
+                $cookie['path'] = empty($path) ? '/' : substr($path, 0, strrpos($path, '/') + 1);
177 177
             }
178 178
         }
179 179
 
180 180
         if ($setter && !$this->domainMatch($setter->getHost(), $cookie['domain'])) {
181 181
             throw new HTTP_Request2_MessageException(
182
-                "Domain " . $setter->getHost() . " cannot set cookies for "
182
+                "Domain ".$setter->getHost()." cannot set cookies for "
183 183
                 . $cookie['domain']
184 184
             );
185 185
         }
@@ -272,7 +272,7 @@  discard block
 block discarded – undo
272 272
         } else {
273 273
             $str = '';
274 274
             foreach ($ret as $c) {
275
-                $str .= (empty($str)? '': '; ') . $c['name'] . '=' . $c['value'];
275
+                $str .= (empty($str) ? '' : '; ').$c['name'].'='.$c['value'];
276 276
             }
277 277
             return $str;
278 278
         }
@@ -303,7 +303,7 @@  discard block
 block discarded – undo
303 303
      */
304 304
     public function serializeSessionCookies($serialize)
305 305
     {
306
-        $this->serializeSession = (bool)$serialize;
306
+        $this->serializeSession = (bool) $serialize;
307 307
     }
308 308
 
309 309
     /**
@@ -329,7 +329,7 @@  discard block
 block discarded – undo
329 329
      */
330 330
     public function usePublicSuffixList($useList)
331 331
     {
332
-        $this->useList = (bool)$useList;
332
+        $this->useList = (bool) $useList;
333 333
     }
334 334
 
335 335
     /**
@@ -405,7 +405,7 @@  discard block
 block discarded – undo
405 405
             return false;
406 406
         }
407 407
         if ('.' != $cookieDomain[0]) {
408
-            $cookieDomain = '.' . $cookieDomain;
408
+            $cookieDomain = '.'.$cookieDomain;
409 409
         }
410 410
         // prevents setting cookies for '.com' and similar domains
411 411
         if (!$this->useList && substr_count($cookieDomain, '.') < 2
@@ -413,7 +413,7 @@  discard block
 block discarded – undo
413 413
         ) {
414 414
             return false;
415 415
         }
416
-        return substr('.' . $requestHost, -strlen($cookieDomain)) == $cookieDomain;
416
+        return substr('.'.$requestHost, -strlen($cookieDomain)) == $cookieDomain;
417 417
     }
418 418
 
419 419
     /**
@@ -434,14 +434,14 @@  discard block
 block discarded – undo
434 434
 
435 435
         // load the list if needed
436 436
         if (empty(self::$psl)) {
437
-            $path = '@data_dir@' . DIRECTORY_SEPARATOR . 'HTTP_Request2';
438
-            if (0 === strpos($path, '@' . 'data_dir@')) {
437
+            $path = '@data_dir@'.DIRECTORY_SEPARATOR.'HTTP_Request2';
438
+            if (0 === strpos($path, '@'.'data_dir@')) {
439 439
                 $path = realpath(
440
-                    dirname(__FILE__) . DIRECTORY_SEPARATOR . '..'
441
-                    . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'data'
440
+                    dirname(__FILE__).DIRECTORY_SEPARATOR.'..'
441
+                    . DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'data'
442 442
                 );
443 443
             }
444
-            self::$psl = include_once $path . DIRECTORY_SEPARATOR . 'public-suffix-list.php';
444
+            self::$psl = include_once $path.DIRECTORY_SEPARATOR.'public-suffix-list.php';
445 445
         }
446 446
 
447 447
         if (!($result = self::checkDomainsList($domainParts, self::$psl))) {
@@ -455,7 +455,7 @@  discard block
 block discarded – undo
455 455
             if (2 > ($count = count($domainParts))) {
456 456
                 return false;
457 457
             }
458
-            return $domainParts[$count - 2] . '.' . $domainParts[$count - 1];
458
+            return $domainParts[$count - 2].'.'.$domainParts[$count - 1];
459 459
         }
460 460
         return $result;
461 461
     }
@@ -474,7 +474,7 @@  discard block
 block discarded – undo
474 474
         $result = null;
475 475
 
476 476
         if (!is_array($listNode) || is_null($sub)
477
-            || array_key_exists('!' . $sub, $listNode)
477
+            || array_key_exists('!'.$sub, $listNode)
478 478
         ) {
479 479
             return $sub;
480 480
 
@@ -488,7 +488,7 @@  discard block
 block discarded – undo
488 488
             return $sub;
489 489
         }
490 490
 
491
-        return (strlen($result) > 0) ? ($result . '.' . $sub) : null;
491
+        return (strlen($result) > 0) ? ($result.'.'.$sub) : null;
492 492
     }
493 493
 }
494 494
 ?>
495 495
\ No newline at end of file
Please login to merge, or discard this patch.