Author: toad Date: 2006-09-29 13:48:54 +0000 (Fri, 29 Sep 2006) New Revision: 10566
Modified: trunk/freenet/src/freenet/clients/http/filter/CSSTokenizerFilter.java trunk/freenet/src/freenet/clients/http/filter/CSSTokenizerFilter.jflex Log: Fix CSS url(...)'s. Modified: trunk/freenet/src/freenet/clients/http/filter/CSSTokenizerFilter.java =================================================================== --- trunk/freenet/src/freenet/clients/http/filter/CSSTokenizerFilter.java 2006-09-29 13:37:58 UTC (rev 10565) +++ trunk/freenet/src/freenet/clients/http/filter/CSSTokenizerFilter.java 2006-09-29 13:48:54 UTC (rev 10566) @@ -1,4 +1,4 @@ -/* The following code was generated by JFlex 1.4.1 on 28/09/06 20:13 */ +/* The following code was generated by JFlex 1.4.1 on 29/09/06 14:46 */ /* This code is part of Freenet. It is distributed under the GNU General * Public License, version 2 (or at your option any later version). See @@ -14,7 +14,7 @@ /** * This class is a scanner generated by * <a href="http://www.jflex.de/">JFlex</a> 1.4.1 - * on 28/09/06 20:13 from the specification file + * on 29/09/06 14:46 from the specification file * <tt>freenet/clients/http/filter/CSSTokenizerFilter.jflex</tt> */ class CSSTokenizerFilter { @@ -32,15 +32,15 @@ * Translates characters to character classes */ private static final String ZZ_CMAP_PACKED = - "\11\0\1\3\1\3\1\0\1\3\1\3\22\0\1\5\1\45\1\11"+ - "\1\27\1\4\1\62\1\4\1\12\1\23\1\14\1\43\1\55\1\30"+ - "\1\10\1\13\1\42\12\1\1\63\1\37\1\44\1\50\1\46\1\26"+ - "\1\33\1\32\1\6\1\54\1\52\1\31\1\53\1\22\1\57\1\20"+ - "\1\7\1\61\1\25\1\34\1\21\1\36\1\35\1\7\1\17\1\15"+ - "\1\16\1\24\2\7\1\56\1\7\1\60\1\4\1\2\4\4\1\32"+ - "\1\6\1\54\1\52\1\31\1\53\1\22\1\57\1\20\1\7\1\61"+ - "\1\25\1\34\1\21\1\36\1\35\1\7\1\17\1\15\1\16\1\24"+ - "\2\7\1\56\1\7\1\60\1\40\1\51\1\41\1\47\uff81\0"; + "\11\0\1\3\1\3\1\0\1\3\1\3\22\0\1\5\1\43\1\11"+ + "\1\25\1\4\1\62\1\4\1\12\1\23\1\14\1\41\1\55\1\30"+ + "\1\10\1\13\1\40\12\1\1\63\1\35\1\42\1\46\1\44\1\24"+ + "\1\31\1\50\1\6\1\54\1\52\1\51\1\53\1\22\1\57\1\20"+ + "\1\7\1\61\1\27\1\32\1\21\1\34\1\33\1\7\1\17\1\15"+ + "\1\16\1\26\2\7\1\56\1\7\1\60\1\4\1\2\4\4\1\50"+ + "\1\6\1\54\1\52\1\51\1\53\1\22\1\57\1\20\1\7\1\61"+ + "\1\27\1\32\1\21\1\34\1\33\1\7\1\17\1\15\1\16\1\26"+ + "\2\7\1\56\1\7\1\60\1\36\1\47\1\37\1\45\uff81\0"; /** * Translates characters to character classes @@ -54,24 +54,24 @@ private static final String ZZ_ACTION_PACKED_0 = "\1\0\1\1\1\2\1\1\1\3\1\2\1\4\2\1"+ - "\1\4\1\5\2\2\1\1\1\4\1\1\1\6\1\7"+ + "\1\4\1\5\1\1\1\2\1\4\1\1\1\6\1\7"+ "\1\10\1\4\4\1\3\0\1\11\1\0\1\12\1\13"+ - "\1\2\3\0\1\14\2\0\1\15\2\2\1\0\1\16"+ - "\1\0\1\16\11\0\1\17\1\20\2\0\1\2\1\21"+ - "\2\14\12\0\2\2\2\22\2\16\11\0\1\2\2\0"+ - "\1\2\1\11\1\22\1\0\1\22\1\23\1\16\5\0"+ - "\1\24\1\25\2\0\2\2\2\0\1\26\2\22\1\27"+ - "\2\16\2\0\1\30\4\0\2\2\1\26\2\22\1\27"+ - "\2\16\6\0\1\2\1\31\2\22\1\27\1\23\1\16"+ - "\1\0\1\32\5\0\2\22\1\27\1\16\5\0\1\33"+ - "\2\32\4\0\1\27\4\0\1\32\4\0\1\27\4\0"+ - "\1\33\2\0\1\32\1\34\3\0\1\35\3\0\1\33"+ - "\5\0\1\33\1\0\1\32\1\0\1\36\16\0\1\32"+ - "\2\36\11\0\1\32\6\0\1\33\23\0\1\33\3\0"+ - "\1\33\32\0"; + "\1\2\3\0\1\14\2\0\1\15\1\16\1\0\1\16"+ + "\1\2\12\0\1\17\1\20\2\0\1\2\1\21\2\14"+ + "\12\0\2\16\1\2\2\22\11\0\1\2\2\0\1\23"+ + "\1\16\1\11\1\22\1\0\1\22\5\0\1\24\1\25"+ + "\2\0\1\2\2\16\5\0\1\26\2\22\1\27\2\0"+ + "\1\30\4\0\1\2\2\16\1\26\3\0\2\22\1\27"+ + "\6\0\1\2\1\23\1\16\2\0\2\22\1\27\1\0"+ + "\1\31\5\0\1\16\2\26\2\22\1\27\5\0\1\32"+ + "\2\31\4\0\1\27\4\0\1\31\4\0\1\27\4\0"+ + "\1\32\2\0\1\31\1\33\3\0\1\34\3\0\1\32"+ + "\5\0\1\32\1\0\1\31\1\0\1\35\16\0\1\31"+ + "\2\35\11\0\1\31\6\0\1\32\23\0\1\32\3\0"+ + "\1\32\32\0"; private static int [] zzUnpackAction() { - int [] result = new int[289]; + int [] result = new int[292]; int offset = 0; offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); return result; @@ -97,45 +97,45 @@ private static final String ZZ_ROWMAP_PACKED_0 = "\0\0\0\64\0\150\0\234\0\320\0\u0104\0\u0138\0\u016c"+ - "\0\u01a0\0\u01d4\0\64\0\u0208\0\u023c\0\u0270\0\64\0\u02a4"+ - "\0\64\0\u02d8\0\u030c\0\u0340\0\u0374\0\u03a8\0\u03dc\0\u0410"+ - "\0\234\0\u0444\0\u01d4\0\64\0\u0478\0\64\0\64\0\u04ac"+ - "\0\u04e0\0\u016c\0\u0514\0\64\0\u01a0\0\u0548\0\u057c\0\u05b0"+ + "\0\u01a0\0\u01d4\0\64\0\u0208\0\u023c\0\64\0\u0270\0\64"+ + "\0\u02a4\0\u02d8\0\u030c\0\u0340\0\u0374\0\u03a8\0\u03dc\0\234"+ + "\0\u0410\0\u01d4\0\64\0\u0444\0\64\0\64\0\u0478\0\u04ac"+ + "\0\u016c\0\u04e0\0\64\0\u01a0\0\u0514\0\u0548\0\u057c\0\u05b0"+ "\0\u05e4\0\u0618\0\u064c\0\u0680\0\u06b4\0\u06e8\0\u071c\0\u0750"+ - "\0\u0784\0\u07b8\0\u07ec\0\u0820\0\u03a8\0\u0854\0\64\0\64"+ - "\0\u0888\0\u08bc\0\u08f0\0\64\0\u016c\0\u01a0\0\u0924\0\u0958"+ + "\0\u0784\0\u07b8\0\u0374\0\u07ec\0\64\0\64\0\u0820\0\u0854"+ + "\0\u0888\0\64\0\u016c\0\u01a0\0\u08bc\0\u08f0\0\u0924\0\u0958"+ "\0\u098c\0\u09c0\0\u09f4\0\u0a28\0\u0a5c\0\u0a90\0\u0ac4\0\u0af8"+ "\0\u0b2c\0\u0b60\0\u0b94\0\u0bc8\0\u0bfc\0\u0c30\0\u0c64\0\u0c98"+ "\0\u0ccc\0\u0d00\0\u0d34\0\u0d68\0\u0d9c\0\u0dd0\0\u0e04\0\u0e38"+ "\0\u0e6c\0\u0ea0\0\u0ed4\0\u0f08\0\u0f3c\0\u0f70\0\u0fa4\0\u0fd8"+ - "\0\u100c\0\u1040\0\u1074\0\u10a8\0\u10dc\0\u1110\0\64\0\64"+ - "\0\u1144\0\u1178\0\u11ac\0\u11e0\0\u0f08\0\u1214\0\64\0\u1248"+ - "\0\u127c\0\u12b0\0\u12e4\0\u1318\0\u134c\0\u1380\0\64\0\u13b4"+ - "\0\u13e8\0\u141c\0\u1450\0\u1484\0\u14b8\0\u0f08\0\u14ec\0\u1520"+ + "\0\u100c\0\u1040\0\64\0\64\0\u1074\0\u10a8\0\u10dc\0\u1110"+ + "\0\u1144\0\u1178\0\u11ac\0\u0ea0\0\u11e0\0\u1214\0\64\0\u1248"+ + "\0\u127c\0\u12b0\0\u12e4\0\u1318\0\64\0\u134c\0\u1380\0\u13b4"+ + "\0\u13e8\0\u141c\0\u1450\0\u1484\0\u1178\0\u14b8\0\u14ec\0\u1520"+ "\0\u1554\0\u1588\0\u15bc\0\u15f0\0\u1624\0\u1658\0\u168c\0\u16c0"+ - "\0\u16f4\0\u1728\0\u0104\0\u175c\0\u1790\0\u17c4\0\u06b4\0\u17f8"+ - "\0\u182c\0\u1860\0\u1894\0\u18c8\0\u18fc\0\u1930\0\u1964\0\u1998"+ - "\0\64\0\u19cc\0\u1a00\0\u1a34\0\u1a68\0\u1a9c\0\u1ad0\0\u1b04"+ - "\0\u1a34\0\u1b38\0\u1b6c\0\u1ba0\0\u1bd4\0\u1c08\0\u1c3c\0\u1c70"+ - "\0\u1ca4\0\u1cd8\0\u1d0c\0\u1d40\0\u1d74\0\u1da8\0\u1ddc\0\u1e10"+ - "\0\u1e44\0\64\0\u1e78\0\u1eac\0\u1ee0\0\u1f14\0\64\0\u1f48"+ - "\0\u1f7c\0\u1fb0\0\64\0\u1fe4\0\u2018\0\u204c\0\64\0\u2080"+ - "\0\u20b4\0\u20e8\0\u1a9c\0\u211c\0\u2150\0\u2184\0\u21b8\0\u21ec"+ - "\0\u1ad0\0\u2220\0\u2254\0\u2288\0\64\0\u22bc\0\u22f0\0\u2324"+ - "\0\u2358\0\u238c\0\u23c0\0\u23f4\0\u2428\0\u245c\0\u2490\0\u24c4"+ - "\0\u24f8\0\u252c\0\u2560\0\u2594\0\u1ddc\0\u1e10\0\u25c8\0\u25fc"+ - "\0\u2630\0\u2664\0\u2698\0\u26cc\0\u2700\0\u2734\0\u2768\0\u279c"+ - "\0\u27d0\0\u2804\0\u2838\0\u286c\0\u28a0\0\u28d4\0\u24c4\0\u2908"+ - "\0\u293c\0\u2970\0\u29a4\0\u29d8\0\u2a0c\0\u2a40\0\u2a74\0\u2aa8"+ - "\0\u2adc\0\u2b10\0\u2b44\0\u2b78\0\u2bac\0\u2be0\0\u2c14\0\u2c48"+ - "\0\u2c7c\0\u2cb0\0\u252c\0\u2ce4\0\u2d18\0\u2d4c\0\u2560\0\u2d80"+ - "\0\u2db4\0\u2de8\0\u2e1c\0\u2e50\0\u2e84\0\u2eb8\0\u2eec\0\u2f20"+ - "\0\u2f54\0\u2f88\0\u2fbc\0\u2ff0\0\u3024\0\u3058\0\u308c\0\u30c0"+ - "\0\u30f4\0\u3128\0\u315c\0\u3190\0\u31c4\0\u31f8\0\u322c\0\u3260"+ - "\0\u3294"; + "\0\u16f4\0\u1728\0\u05e4\0\u175c\0\u1790\0\u17c4\0\u17f8\0\u182c"+ + "\0\u1860\0\u1894\0\u18c8\0\u18fc\0\u1930\0\u1964\0\u1998\0\u19cc"+ + "\0\u1a00\0\u11e0\0\u1214\0\u1a34\0\64\0\u1a68\0\u1a9c\0\u1ad0"+ + "\0\u1b04\0\u1b38\0\u1b6c\0\u1a9c\0\u1ba0\0\u1bd4\0\u1c08\0\u1c3c"+ + "\0\u1c70\0\u1ca4\0\u1cd8\0\u1d0c\0\u1d40\0\u1d74\0\u1da8\0\u1ddc"+ + "\0\u1e10\0\u1e44\0\u1e78\0\u1eac\0\64\0\u1ee0\0\u1f14\0\u1f48"+ + "\0\u1f7c\0\64\0\u1fb0\0\u1fe4\0\u2018\0\64\0\u204c\0\u2080"+ + "\0\u20b4\0\64\0\u20e8\0\u211c\0\u2150\0\u1b04\0\u2184\0\u21b8"+ + "\0\u21ec\0\u2220\0\u2254\0\u1b38\0\u2288\0\u22bc\0\u22f0\0\64"+ + "\0\u2324\0\u2358\0\u238c\0\u23c0\0\u23f4\0\u2428\0\u245c\0\u2490"+ + "\0\u24c4\0\u24f8\0\u252c\0\u2560\0\u2594\0\u25c8\0\u25fc\0\u1e44"+ + "\0\u1e78\0\u2630\0\u2664\0\u2698\0\u26cc\0\u2700\0\u2734\0\u2768"+ + "\0\u279c\0\u27d0\0\u2804\0\u2838\0\u286c\0\u28a0\0\u28d4\0\u2908"+ + "\0\u293c\0\u252c\0\u2970\0\u29a4\0\u29d8\0\u2a0c\0\u2a40\0\u2a74"+ + "\0\u2aa8\0\u2adc\0\u2b10\0\u2b44\0\u2b78\0\u2bac\0\u2be0\0\u2c14"+ + "\0\u2c48\0\u2c7c\0\u2cb0\0\u2ce4\0\u2d18\0\u2594\0\u2d4c\0\u2d80"+ + "\0\u2db4\0\u25c8\0\u2de8\0\u2e1c\0\u2e50\0\u2e84\0\u2eb8\0\u2eec"+ + "\0\u2f20\0\u2f54\0\u2f88\0\u2fbc\0\u2ff0\0\u3024\0\u3058\0\u308c"+ + "\0\u30c0\0\u30f4\0\u3128\0\u315c\0\u3190\0\u31c4\0\u31f8\0\u322c"+ + "\0\u3260\0\u3294\0\u32c8\0\u32fc"; private static int [] zzUnpackRowMap() { - int [] result = new int[289]; + int [] result = new int[292]; int offset = 0; offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); return result; @@ -159,427 +159,388 @@ private static final String ZZ_TRANS_PACKED_0 = "\1\2\1\3\1\4\1\5\1\2\1\5\2\6\1\7"+ - "\1\10\1\11\1\12\1\13\2\6\1\14\3\6\1\2"+ - "\1\15\1\6\1\2\1\16\1\17\2\6\1\20\3\6"+ - "\1\21\1\22\1\23\1\24\1\17\1\25\1\26\1\17"+ - "\1\27\1\2\1\30\3\6\1\17\4\6\1\2\1\17"+ - "\65\0\1\3\1\31\1\32\1\0\1\32\3\6\2\0"+ - "\1\33\1\0\6\6\1\34\2\6\2\0\1\35\2\6"+ - "\1\0\3\6\1\36\12\0\3\6\1\0\4\6\1\37"+ - "\2\0\1\40\1\6\1\0\2\6\1\40\22\6\2\40"+ - "\17\6\3\40\7\6\3\0\1\5\1\0\1\5\32\0"+ - "\1\22\1\23\23\0\1\6\1\31\1\32\1\0\1\32"+ - "\3\6\4\0\6\6\1\34\2\6\2\0\1\35\2\6"+ - "\1\0\3\6\1\36\12\0\3\6\1\0\4\6\12\0"+ - "\1\41\53\0\2\42\1\43\6\42\1\44\52\42\2\45"+ - "\1\46\7\45\1\44\51\45\1\0\1\47\63\0\1\6"+ - "\1\31\1\32\1\0\1\32\3\6\4\0\6\6\1\34"+ - "\2\6\2\0\1\35\1\50\1\6\1\0\3\6\1\36"+ - "\12\0\3\6\1\0\4\6\3\0\1\6\1\31\1\32"+ - "\1\0\1\32\3\6\4\0\2\6\1\51\3\6\1\34"+ - "\2\6\2\0\1\35\2\6\1\0\3\6\1\36\12\0"+ - "\3\6\1\52\4\6\3\0\1\53\1\54\3\0\1\53"+ - "\2\55\4\0\6\55\1\0\2\55\3\0\2\53\1\0"+ - "\3\55\13\0\3\53\1\0\4\55\22\0\1\56\13\0"+ - "\1\57\1\60\15\0\1\61\1\62\12\0\1\22\1\0"+ - "\1\22\61\0\1\23\1\0\1\23\121\0\1\63\65\0"+ - "\1\64\21\0\1\65\1\0\1\65\12\0\1\66\113\0"+ - "\1\67\63\0\1\70\16\0\1\32\1\0\1\32\22\0"+ - "\1\35\6\0\1\36\25\0\1\71\1\72\1\35\1\0"+ - "\1\35\2\71\5\0\6\71\1\0\2\71\3\0\2\71"+ - "\1\0\3\71\13\0\3\71\1\0\4\71\3\0\1\73"+ - "\1\31\1\6\1\0\1\6\1\73\2\6\4\0\6\6"+ - "\1\34\2\6\2\0\1\35\2\73\1\0\3\6\1\36"+ - "\12\0\3\73\1\0\4\6\50\0\1\74\15\0\2\42"+ - "\1\43\6\42\1\75\52\42\2\45\1\46\7\45\1\76"+ - "\51\45\1\0\1\47\13\0\1\37\1\0\1\77\1\100"+ - "\1\0\1\101\6\0\1\102\2\0\1\103\1\104\14\0"+ - "\1\105\1\0\1\106\2\0\1\107\1\0\1\110\1\37"+ - "\2\0\1\6\1\31\1\32\1\0\1\32\3\6\4\0"+ - "\6\6\1\34\2\6\2\0\1\35\1\6\1\111\1\0"+ - "\3\6\1\36\12\0\3\6\1\0\4\6\3\0\1\6"+ - "\1\31\1\32\1\0\1\32\3\6\4\0\6\6\1\34"+ - "\1\6\1\112\2\0\1\35\2\6\1\0\3\6\1\36"+ - "\12\0\3\6\1\0\4\6\3\0\1\113\4\0\1\113"+ - "\17\0\1\114\2\0\2\113\17\0\3\113\10\0\1\115"+ - "\1\54\3\0\1\115\2\55\4\0\6\55\1\0\2\55"+ - "\3\0\2\115\1\0\3\55\13\0\3\115\1\0\4\55"+ - "\3\0\1\116\1\55\1\0\2\55\1\116\22\55\2\116"+ - "\17\55\3\116\7\55\1\0\1\55\1\54\3\0\3\55"+ - "\4\0\6\55\1\0\2\55\3\0\2\55\1\0\3\55"+ - "\13\0\3\55\1\0\4\55\36\0\1\117\60\0\1\120"+ - "\64\0\1\121\67\0\1\122\104\0\1\123\4\0\43\63"+ - "\1\124\20\63\10\0\1\125\107\0\1\126\30\0\1\71"+ - "\1\72\1\32\1\0\1\32\3\71\4\0\6\71\1\0"+ - "\2\71\2\0\1\35\2\71\1\0\3\71\1\36\12\0"+ - "\3\71\1\0\4\71\3\0\1\127\1\71\1\0\2\71"+ - "\1\127\22\71\2\127\17\71\3\127\7\71\1\0\1\130"+ - "\1\31\1\6\1\0\1\6\1\130\2\6\4\0\6\6"+ - "\1\34\2\6\2\0\1\35\2\130\1\0\3\6\1\36"+ - "\12\0\3\130\1\0\4\6\34\0\1\131\52\0\1\37"+ - "\61\0\1\77\100\0\1\37\21\0\1\37\22\0\1\37"+ - "\16\0\1\37\103\0\1\37\1\0\1\37\36\0\1\132"+ - "\66\0\1\37\107\0\1\37\62\0\1\107\5\0\1\6"+ - "\1\31\1\32\1\0\1\32\3\6\4\0\6\6\1\34"+ - "\1\6\1\133\2\0\1\35\2\6\1\0\3\6\1\36"+ - "\12\0\3\6\1\0\4\6\3\0\1\6\1\31\1\32"+ - "\1\0\1\32\3\6\4\0\6\6\1\134\2\6\2\0"+ - "\1\35\2\6\1\0\3\6\1\36\12\0\3\6\1\0"+ - "\4\6\3\0\1\135\4\0\1\135\1\0\1\136\15\0"+ - "\1\137\2\0\2\135\17\0\3\135\35\0\1\137\36\0"+ - "\1\140\1\54\3\0\1\140\2\55\4\0\6\55\1\0"+ - "\2\55\3\0\2\140\1\0\3\55\13\0\3\140\1\0"+ - "\4\55\3\0\1\141\1\54\1\55\1\0\1\55\1\141"+ - "\2\55\4\0\6\55\1\0\2\55\3\0\2\141\1\0"+ - "\3\55\13\0\3\141\1\0\4\55\37\0\1\142\100\0"+ - "\1\143\33\0\1\144\62\0\1\145\74\0\1\146\31\0"+ - "\42\63\1\147\1\124\20\63\10\0\1\150\110\0\1\151"+ - "\27\0\1\152\1\72\1\71\1\0\1\71\1\152\2\71"+ - "\4\0\6\71\1\0\2\71\2\0\1\35\2\152\1\0"+ - "\3\71\1\36\12\0\3\152\1\0\4\71\3\0\1\153"+ - "\1\31\1\6\1\0\1\6\1\153\2\6\4\0\6\6"+ - "\1\34\2\6\2\0\1\35\2\153\1\0\3\6\1\36"+ - "\12\0\3\153\1\0\4\6\54\0\1\37\33\0\1\37"+ - "\42\0\1\6\1\31\1\32\1\0\1\32\3\6\4\0"+ - "\6\6\1\34\1\154\1\6\2\0\1\35\2\6\1\0"+ - "\3\6\1\36\12\0\3\6\1\0\4\6\2\0\2\155"+ - "\1\156\11\155\1\157\47\155\1\0\1\160\4\0\1\160"+ - "\1\0\1\136\15\0\1\161\2\0\2\160\17\0\3\160"+ - "\10\0\1\162\4\0\1\162\22\0\2\162\17\0\3\162"+ - "\35\0\1\161\36\0\1\163\1\54\3\0\1\163\2\55"+ - "\4\0\6\55\1\0\2\55\3\0\2\163\1\0\3\55"+ - "\13\0\3\163\1\0\4\55\3\0\1\164\1\54\1\55"+ - "\1\0\1\55\1\164\2\55\4\0\6\55\1\0\2\55"+ - "\3\0\2\164\1\0\3\55\13\0\3\164\1\0\4\55"+ - "\40\0\1\165\45\0\1\166\74\0\1\167\50\0\1\170"+ - "\64\0\1\171\102\0\1\172\26\0\1\173\1\72\1\71"+ - "\1\0\1\71\1\173\2\71\4\0\6\71\1\0\2\71"+ - "\2\0\1\35\2\173\1\0\3\71\1\36\12\0\3\173"+ - "\1\0\4\71\3\0\1\174\1\31\1\6\1\0\1\6"+ - "\1\174\2\6\4\0\6\6\1\34\2\6\2\0\1\35"+ - "\2\174\1\0\3\6\1\36\12\0\3\174\1\0\4\6"+ - "\3\0\1\6\1\31\1\32\1\0\1\32\3\6\4\0"+ - "\2\6\1\175\3\6\1\34\2\6\2\0\1\35\2\6"+ - "\1\0\3\6\1\36\12\0\3\6\1\0\4\6\2\0"+ - "\2\155\1\156\11\155\1\176\47\155\1\0\1\177\4\0"+ - "\1\177\1\0\1\136\15\0\1\200\2\0\2\177\17\0"+ - "\3\177\35\0\1\200\36\0\1\201\4\0\1\201\22\0"+ - "\2\201\17\0\3\201\10\0\1\202\1\54\3\0\1\202"+ - "\2\55\4\0\6\55\1\0\2\55\3\0\2\202\1\0"+ - "\3\55\13\0\3\202\1\0\4\55\3\0\1\203\1\54"+ - "\1\55\1\0\1\55\1\203\2\55\4\0\6\55\1\0"+ - "\2\55\3\0\2\203\1\0\3\55\13\0\3\203\1\0"+ - "\4\55\21\0\1\204\76\0\1\205\41\0\1\206\70\0"+ - "\1\207\65\0\1\210\45\0\1\211\1\72\1\71\1\0"+ - "\1\71\1\211\2\71\4\0\6\71\1\0\2\71\2\0"+ - "\1\35\2\211\1\0\3\71\1\36\12\0\3\211\1\0"+ - "\4\71\3\0\1\212\1\31\1\6\1\0\1\6\1\212"+ - "\2\6\4\0\6\6\1\34\2\6\2\0\1\35\2\212"+ - "\1\0\3\6\1\36\12\0\3\212\1\0\4\6\3\0"+ - "\1\6\1\31\1\32\1\0\1\32\3\6\4\0\6\6"+ - "\1\34\1\6\1\213\2\0\1\35\2\6\1\0\3\6"+ - "\1\36\12\0\3\6\1\0\4\6\3\0\1\214\4\0"+ - "\1\214\1\0\1\136\15\0\1\215\2\0\2\214\17\0"+ - "\3\214\35\0\1\215\36\0\1\216\4\0\1\216\22\0"+ - "\2\216\17\0\3\216\10\0\1\217\1\54\3\0\1\217"+ - "\2\55\4\0\6\55\1\0\2\55\3\0\2\217\1\0"+ - "\3\55\13\0\3\217\1\0\4\55\3\0\1\220\1\54"+ - "\1\55\1\0\1\55\1\220\2\55\4\0\6\55\1\0"+ - "\2\55\3\0\2\220\1\0\3\55\13\0\3\220\1\0"+ - "\4\55\20\0\1\221\46\0\1\222\1\223\1\205\1\0"+ - "\1\205\2\222\5\0\6\222\1\0\2\222\3\0\2\222"+ - "\1\0\3\222\13\0\3\222\1\0\4\222\55\0\1\224"+ - "\41\0\1\225\50\0\1\226\46\0\1\227\1\72\1\71"+ - "\1\0\1\71\1\227\2\71\4\0\6\71\1\0\2\71"+ - "\2\0\1\35\2\227\1\0\3\71\1\36\12\0\3\227"+ - "\1\0\4\71\3\0\1\6\1\31\1\6\1\0\4\6"+ - "\4\0\6\6\1\34\2\6\2\0\1\35\2\6\1\0"+ - "\3\6\1\36\12\0\3\6\1\0\4\6\3\0\1\230"+ - "\4\0\1\230\1\0\1\136\15\0\1\231\2\0\2\230"+ - "\17\0\3\230\35\0\1\231\36\0\1\232\4\0\1\232"+ - "\22\0\2\232\17\0\3\232\10\0\1\233\1\54\1\55"+ - "\1\0\1\55\1\233\2\55\4\0\6\55\1\0\2\55"+ - "\3\0\2\233\1\0\3\55\13\0\3\233\1\0\4\55"+ - "\2\0\2\234\1\235\1\221\1\234\1\221\3\234\1\236"+ - "\1\237\1\234\1\0\6\234\1\0\1\240\12\234\1\241"+ - "\24\234\1\0\1\222\1\223\1\242\1\0\1\242\3\222"+ - "\4\0\6\222\1\0\2\222\2\0\1\205\2\222\1\0"+ - "\3\222\13\0\3\222\1\0\4\222\3\0\1\243\1\222"+ - "\1\0\2\222\1\243\22\222\2\243\17\222\3\243\7\222"+ - "\32\0\1\244\47\0\1\245\77\0\1\246\32\0\1\247"+ - "\1\72\1\71\1\0\1\71\1\247\2\71\4\0\6\71"+ - "\1\0\2\71\2\0\1\35\2\247\1\0\3\71\1\36"+ - "\12\0\3\247\1\0\4\71\12\0\1\136\54\0\1\250"+ - "\4\0\1\250\22\0\2\250\17\0\3\250\10\0\1\55"+ - "\1\54\1\55\1\0\4\55\4\0\6\55\1\0\2\55"+ - "\3\0\2\55\1\0\3\55\13\0\3\55\1\0\4\55"+ - "\2\0\2\234\1\235\6\234\2\0\1\234\1\0\6\234"+ - "\1\0\13\234\1\241\26\234\1\235\34\234\1\241\24\234"+ - "\2\236\1\251\6\236\1\252\52\236\2\237\1\253\7\237"+ - "\1\252\51\237\2\234\1\235\6\234\2\0\1\234\1\0"+ - "\2\234\1\254\3\234\1\0\13\234\1\241\24\234\3\0"+ - "\1\242\1\0\1\242\22\0\1\205\34\0\1\255\1\223"+ - "\1\222\1\0\1\222\1\255\2\222\4\0\6\222\1\0"+ - "\2\222\2\0\1\205\2\255\1\0\3\222\13\0\3\255"+ - "\1\0\4\222\56\0\1\256\12\0\1\245\1\0\1\245"+ - "\3\0\1\257\1\260\72\0\1\261\43\0\1\71\1\72"+ - "\1\71\1\0\4\71\4\0\6\71\1\0\2\71\2\0"+ - "\1\35\2\71\1\0\3\71\1\36\12\0\3\71\1\0"+ - "\4\71\3\0\1\262\4\0\1\262\22\0\2\262\17\0"+ - "\3\262\7\0\2\236\1\251\6\236\1\263\52\236\1\0"+ - "\1\264\1\265\1\266\1\0\1\266\2\264\5\0\6\264"+ - "\1\0\2\264\3\0\2\264\1\0\3\264\1\267\12\0"+ - "\3\264\1\0\4\264\2\0\2\237\1\253\7\237\1\270"+ - "\51\237\2\234\1\235\6\234\2\0\1\234\1\0\6\234"+ - "\1\0\1\234\1\271\11\234\1\241\24\234\1\0\1\272"+ - "\1\223\1\222\1\0\1\222\1\272\2\222\4\0\6\222"+ - "\1\0\2\222\2\0\1\205\2\272\1\0\3\222\13\0"+ - "\3\272\1\0\4\222\33\0\1\273\32\0\2\257\1\274"+ - "\6\257\1\275\52\257\2\260\1\276\7\260\1\275\51\260"+ - "\16\0\1\277\45\0\1\236\1\300\1\301\1\302\1\236"+ - "\1\302\2\300\1\236\1\252\3\236\6\300\1\236\2\300"+ - "\3\236\2\300\1\236\3\300\1\303\12\236\3\300\1\236"+ - "\4\300\2\236\1\0\1\264\1\265\1\304\1\0\1\304"+ - "\3\264\4\0\6\264\1\0\2\264\2\0\1\266\2\264"+ - "\1\0\3\264\1\267\12\0\3\264\1\0\4\264\3\0"+ - "\1\305\1\264\1\0\2\264\1\305\22\264\2\305\17\264"+ - "\3\305\7\264\1\0\1\264\1\265\1\266\1\0\1\266"+ - "\2\264\5\0\6\264\1\0\2\264\3\0\2\264\1\0"+ - "\3\264\13\0\3\264\1\0\4\264\2\0\1\237\1\306"+ - "\1\307\1\310\1\237\1\310\2\306\2\237\1\252\2\237"+ - "\6\306\1\237\2\306\3\237\2\306\1\237\3\306\1\311"+ - "\12\237\3\306\1\237\4\306\2\237\2\234\1\235\6\234"+ - "\2\0\1\234\1\0\6\234\1\312\13\234\1\241\24\234"+ - "\1\0\1\313\1\223\1\222\1\0\1\222\1\313\2\222"+ - "\4\0\6\222\1\0\2\222\2\0\1\205\2\313\1\0"+ - "\3\222\13\0\3\313\1\0\4\222\2\0\2\257\1\274"+ - "\6\257\1\314\52\257\3\0\1\275\1\0\1\275\31\0"+ - "\1\315\24\0\2\260\1\276\7\260\1\316\51\260\1\236"+ - "\1\300\1\301\1\317\1\236\1\317\3\300\1\252\3\236"+ - "\6\300\1\236\2\300\2\236\1\302\2\300\1\236\3\300"+ - "\1\303\12\236\3\300\1\236\4\300\3\236\1\320\1\321"+ - "\1\236\2\300\1\320\2\300\1\322\17\300\2\320\17\300"+ - "\3\320\7\300\1\236\1\300\1\301\1\302\1\236\1\302"+ - "\2\300\1\236\1\252\3\236\6\300\1\236\2\300\3\236"+ - "\2\300\1\236\3\300\13\236\3\300\1\236\4\300\2\236"+ - "\3\0\1\304\1\0\1\304\22\0\1\266\6\0\1\267"+ - "\25\0\1\323\1\265\1\264\1\0\1\264\1\323\2\264"+ - "\4\0\6\264\1\0\2\264\2\0\1\266\2\323\1\0"+ - "\3\264\1\267\12\0\3\323\1\0\4\264\2\0\1\237"+ - "\1\306\1\307\1\324\1\237\1\324\3\306\1\237\1\252"+ - "\2\237\6\306\1\237\2\306\2\237\1\310\2\306\1\237"+ - "\3\306\1\311\12\237\3\306\1\237\4\306\3\237\1\325"+ - "\1\326\1\237\2\306\1\325\3\306\1\327\16\306\2\325"+ - "\17\306\3\325\7\306\1\237\1\306\1\307\1\310\1\237"+ - "\1\310\2\306\2\237\1\252\2\237\6\306\1\237\2\306"+ - "\3\237\2\306\1\237\3\306\13\237\3\306\1\237\4\306"+ - "\2\237\2\330\1\331\1\312\1\330\1\312\3\330\1\332"+ - "\1\333\1\330\1\252\6\330\1\0\40\330\1\0\1\334"+ - "\1\223\1\222\1\0\1\222\1\334\2\222\4\0\6\222"+ - "\1\0\2\222\2\0\1\205\2\334\1\0\3\222\13\0"+ - "\3\334\1\0\4\222\2\0\2\257\1\274\1\314\1\257"+ - "\1\314\3\257\1\275\25\257\1\335\24\257\2\260\1\276"+ - "\1\316\1\260\1\316\4\260\1\275\24\260\1\336\24\260"+ - "\2\236\1\251\1\317\1\236\1\317\3\236\1\252\16\236"+ - "\1\302\6\236\1\303\25\236\1\337\1\301\1\300\1\236"+ - "\1\300\1\337\2\300\1\252\3\236\6\300\1\236\2\300"+ - "\2\236\1\302\2\337\1\236\3\300\1\303\12\236\3\337"+ - "\1\236\4\300\3\236\1\300\1\301\1\317\1\236\1\317"+ - "\3\300\1\263\3\236\6\300\1\236\2\300\2\236\1\302"+ - "\2\300\1\236\3\300\1\303\12\236\3\300\1\236\4\300"+ - "\3\236\1\300\1\301\1\340\1\236\1\340\3\300\1\252"+ - "\3\236\6\300\1\236\2\300\2\236\1\302\2\300\1\236"+ - "\3\300\1\303\12\236\3\300\1\236\4\300\2\236\1\0"+ - "\1\341\1\265\1\264\1\0\1\264\1\341\2\264\4\0"+ - "\6\264\1\0\2\264\2\0\1\266\2\341\1\0\3\264"+ - "\1\267\12\0\3\341\1\0\4\264\2\0\2\237\1\253"+ - "\1\324\1\237\1\324\4\237\1\252\15\237\1\310\6\237"+ - "\1\311\25\237\1\342\1\307\1\306\1\237\1\306\1\342"+ - "\2\306\1\237\1\252\2\237\6\306\1\237\2\306\2\237"+ - "\1\310\2\342\1\237\3\306\1\311\12\237\3\342\1\237"+ - "\4\306\3\237\1\306\1\307\1\324\1\237\1\324\3\306"+ - "\1\237\1\270\2\237\6\306\1\237\2\306\2\237\1\310"+ - "\2\306\1\237\3\306\1\311\12\237\3\306\1\237\4\306"+ - "\3\237\1\306\1\307\1\343\1\237\1\343\3\306\1\237"+ - "\1\252\2\237\6\306\1\237\2\306\2\237\1\310\2\306"+ - "\1\237\3\306\1\311\12\237\3\306\1\237\4\306\2\237"+ - "\2\330\1\331\6\330\2\0\1\330\1\252\6\330\1\0"+ - "\42\330\1\331\11\330\1\344\47\330\2\332\1\345\6\332"+ - "\1\346\52\332\2\333\1\347\7\333\1\346\51\333\1\0"+ - "\1\350\1\223\1\222\1\0\1\222\1\350\2\222\4\0"+ - "\6\222\1\0\2\222\2\0\1\205\2\350\1\0\3\222"+ - "\13\0\3\350\1\0\4\222\2\0\1\236\1\351\1\301"+ - "\1\300\1\236\1\300\1\351\2\300\1\252\3\236\6\300"+ - "\1\236\2\300\2\236\1\302\2\351\1\236\3\300\1\303"+ - "\12\236\3\351\1\236\4\300\3\236\1\300\1\301\1\340"+ - "\1\236\1\340\2\300\1\236\1\252\3\236\6\300\1\236"+ - "\2\300\2\236\1\302\2\300\1\236\3\300\1\303\12\236"+ - "\3\300\1\236\4\300\2\236\1\0\1\352\1\265\1\264"+ - "\1\0\1\264\1\352\2\264\4\0\6\264\1\0\2\264"+ - "\2\0\1\266\2\352\1\0\3\264\1\267\12\0\3\352"+ - "\1\0\4\264\2\0\1\237\1\353\1\307\1\306\1\237"+ - "\1\306\1\353\2\306\1\237\1\252\2\237\6\306\1\237"+ - "\2\306\2\237\1\310\2\353\1\237\3\306\1\311\12\237"+ - "\3\353\1\237\4\306\3\237\1\306\1\307\1\343\1\237"+ - "\1\343\2\306\2\237\1\252\2\237\6\306\1\237\2\306"+ - "\2\237\1\310\2\306\1\237\3\306\1\311\12\237\3\306"+ - "\1\237\4\306\2\237\1\330\1\354\1\355\1\356\1\330"+ - "\1\356\2\354\1\330\2\0\1\330\1\252\6\354\1\0"+ - "\2\354\3\330\2\354\1\330\3\354\1\357\12\330\3\354"+ - "\1\330\4\354\2\330\2\332\1\345\6\332\1\360\52\332"+ - "\3\0\1\346\1\0\1\346\6\0\1\252\47\0\2\333"+ - "\1\347\7\333\1\361\51\333\1\0\1\222\1\223\1\222"+ - "\1\0\4\222\4\0\6\222\1\0\2\222\2\0\1\205"+ - "\2\222\1\0\3\222\13\0\3\222\1\0\4\222\2\0"+ - "\1\236\1\362\1\301\1\300\1\236\1\300\1\362\2\300"+ - "\1\252\3\236\6\300\1\236\2\300\2\236\1\302\2\362"+ - "\1\236\3\300\1\303\12\236\3\362\1\236\4\300\2\236"+ - "\1\0\1\363\1\265\1\264\1\0\1\264\1\363\2\264"+ - "\4\0\6\264\1\0\2\264\2\0\1\266\2\363\1\0"+ - "\3\264\1\267\12\0\3\363\1\0\4\264\2\0\1\237"+ - "\1\364\1\307\1\306\1\237\1\306\1\364\2\306\1\237"+ - "\1\252\2\237\6\306\1\237\2\306\2\237\1\310\2\364"+ - "\1\237\3\306\1\311\12\237\3\364\1\237\4\306\2\237"+ - "\1\330\1\354\1\355\1\365\1\330\1\365\3\354\2\0"+ - "\1\330\1\252\6\354\1\0\2\354\2\330\1\356\2\354"+ - "\1\330\3\354\1\357\12\330\3\354\1\330\4\354\3\330"+ - "\1\366\1\367\1\330\2\354\1\366\5\354\1\370\14\354"+ - "\2\366\17\354\3\366\7\354\1\330\1\354\1\355\1\356"+ - "\1\330\1\356\2\354\1\330\2\0\1\330\1\252\6\354"+ - "\1\0\2\354\3\330\2\354\1\330\3\354\13\330\3\354"+ - "\1\330\4\354\2\330\2\332\1\345\1\360\1\332\1\360"+ - "\3\332\1\346\2\332\1\371\47\332\2\333\1\347\1\361"+ - "\1\333\1\361\4\333\1\346\1\333\1\372\47\333\1\236"+ - "\1\373\1\301\1\300\1\236\1\300\1\373\2\300\1\252"+ - "\3\236\6\300\1\236\2\300\2\236\1\302\2\373\1\236"+ - "\3\300\1\303\12\236\3\373\1\236\4\300\2\236\1\0"+ - "\1\374\1\265\1\264\1\0\1\264\1\374\2\264\4\0"+ - "\6\264\1\0\2\264\2\0\1\266\2\374\1\0\3\264"+ - "\1\267\12\0\3\374\1\0\4\264\2\0\1\237\1\375"+ - "\1\307\1\306\1\237\1\306\1\375\2\306\1\237\1\252"+ - "\2\237\6\306\1\237\2\306\2\237\1\310\2\375\1\237"+ - "\3\306\1\311\12\237\3\375\1\237\4\306\2\237\2\330"+ - "\1\331\1\365\1\330\1\365\3\330\2\0\1\330\1\252"+ - "\6\330\1\0\4\330\1\356\6\330\1\357\25\330\1\376"+ - "\1\355\1\354\1\330\1\354\1\376\2\354\2\0\1\330"+ - "\1\252\6\354\1\0\2\354\2\330\1\356\2\376\1\330"+ - "\3\354\1\357\12\330\3\376\1\330\4\354\3\330\1\354"+ - "\1\355\1\365\1\330\1\365\3\354\3\330\1\344\6\354"+ - "\1\330\2\354\2\330\1\356\2\354\1\330\3\354\1\357"+ - "\12\330\3\354\1\330\4\354\3\330\1\354\1\355\1\377"+ - "\1\330\1\377\3\354\2\0\1\330\1\252\6\354\1\0"+ - "\2\354\2\330\1\356\2\354\1\330\3\354\1\357\12\330"+ - "\3\354\1\330\4\354\2\330\1\332\1\u0100\1\u0101\1\u0102"+ - "\1\332\1\u0102\2\u0100\1\332\1\346\3\332\6\u0100\1\332"+ - "\2\u0100\3\332\2\u0100\1\332\3\u0100\1\u0103\12\332\3\u0100"+ - "\1\332\4\u0100\2\332\1\333\1\u0104\1\u0105\1\u0106\1\333"+ - "\1\u0106\2\u0104\2\333\1\346\2\333\6\u0104\1\333\2\u0104"+ - "\3\333\2\u0104\1\333\3\u0104\1\u0107\12\333\3\u0104\1\333"+ - "\4\u0104\2\333\1\236\1\u0108\1\301\1\300\1\236\1\300"+ - "\1\u0108\2\300\1\252\3\236\6\300\1\236\2\300\2\236"+ - "\1\302\2\u0108\1\236\3\300\1\303\12\236\3\u0108\1\236"+ - "\4\300\2\236\1\0\1\264\1\265\1\264\1\0\4\264"+ - "\4\0\6\264\1\0\2\264\2\0\1\266\2\264\1\0"+ - "\3\264\1\267\12\0\3\264\1\0\4\264\2\0\1\237"+ - "\1\u0109\1\307\1\306\1\237\1\306\1\u0109\2\306\1\237"+ - "\1\252\2\237\6\306\1\237\2\306\2\237\1\310\2\u0109"+ - "\1\237\3\306\1\311\12\237\3\u0109\1\237\4\306\2\237"+ - "\1\330\1\u010a\1\355\1\354\1\330\1\354\1\u010a\2\354"+ - "\2\0\1\330\1\252\6\354\1\0\2\354\2\330\1\356"+ - "\2\u010a\1\330\3\354\1\357\12\330\3\u010a\1\330\4\354"+ - "\3\330\1\354\1\355\1\377\1\330\1\377\2\354\1\330"+ - "\2\0\1\330\1\252\6\354\1\0\2\354\2\330\1\356"+ - "\2\354\1\330\3\354\1\357\12\330\3\354\1\330\4\354"+ - "\2\330\1\332\1\u0100\1\u0101\1\u010b\1\332\1\u010b\3\u0100"+ - "\1\346\3\332\6\u0100\1\332\2\u0100\2\332\1\u0102\2\u0100"+ - "\1\332\3\u0100\1\u0103\12\332\3\u0100\1\332\4\u0100\3\332"+ - "\1\u010c\1\u010d\1\332\2\u0100\1\u010c\2\u0100\1\u010e\17\u0100"+ - "\2\u010c\17\u0100\3\u010c\7\u0100\1\332\1\u0100\1\u0101\1\u0102"+ - "\1\332\1\u0102\2\u0100\1\332\1\346\3\332\6\u0100\1\332"+ - "\2\u0100\3\332\2\u0100\1\332\3\u0100\13\332\3\u0100\1\332"+ - "\4\u0100\2\332\1\333\1\u0104\1\u0105\1\u010f\1\333\1\u010f"+ - "\3\u0104\1\333\1\346\2\333\6\u0104\1\333\2\u0104\2\333"+ - "\1\u0106\2\u0104\1\333\3\u0104\1\u0107\12\333\3\u0104\1\333"+ - "\4\u0104\3\333\1\u0110\1\u0111\1\333\2\u0104\1\u0110\3\u0104"+ - "\1\u0112\16\u0104\2\u0110\17\u0104\3\u0110\7\u0104\1\333\1\u0104"+ - "\1\u0105\1\u0106\1\333\1\u0106\2\u0104\2\333\1\346\2\333"+ - "\6\u0104\1\333\2\u0104\3\333\2\u0104\1\333\3\u0104\13\333"+ - "\3\u0104\1\333\4\u0104\2\333\1\236\1\300\1\301\1\300"+ - "\1\236\4\300\1\252\3\236\6\300\1\236\2\300\2\236"+ - "\1\302\2\300\1\236\3\300\1\303\12\236\3\300\1\236"+ - "\4\300\2\236\1\237\1\306\1\307\1\306\1\237\4\306"+ - "\1\237\1\252\2\237\6\306\1\237\2\306\2\237\1\310"+ - "\2\306\1\237\3\306\1\311\12\237\3\306\1\237\4\306"+ - "\2\237\1\330\1\u0113\1\355\1\354\1\330\1\354\1\u0113"+ - "\2\354\2\0\1\330\1\252\6\354\1\0\2\354\2\330"+ - "\1\356\2\u0113\1\330\3\354\1\357\12\330\3\u0113\1\330"+ - "\4\354\2\330\2\332\1\345\1\u010b\1\332\1\u010b\3\332"+ - "\1\346\16\332\1\u0102\6\332\1\u0103\25\332\1\u0114\1\u0101"+ - "\1\u0100\1\332\1\u0100\1\u0114\2\u0100\1\346\3\332\6\u0100"+ - "\1\332\2\u0100\2\332\1\u0102\2\u0114\1\332\3\u0100\1\u0103"+ - "\12\332\3\u0114\1\332\4\u0100\3\332\1\u0100\1\u0101\1\u010b"+ - "\1\332\1\u010b\3\u0100\1\360\3\332\6\u0100\1\332\2\u0100"+ - "\2\332\1\u0102\2\u0100\1\332\3\u0100\1\u0103\12\332\3\u0100"+ - "\1\332\4\u0100\3\332\1\u0100\1\u0101\1\u0115\1\332\1\u0115"+ - "\3\u0100\1\346\2\332\1\371\6\u0100\1\332\2\u0100\2\332"+ - "\1\u0102\2\u0100\1\332\3\u0100\1\u0103\12\332\3\u0100\1\332"+ - "\4\u0100\2\332\2\333\1\347\1\u010f\1\333\1\u010f\4\333"+ - "\1\346\15\333\1\u0106\6\333\1\u0107\25\333\1\u0116\1\u0105"+ - "\1\u0104\1\333\1\u0104\1\u0116\2\u0104\1\333\1\346\2\333"+ - "\6\u0104\1\333\2\u0104\2\333\1\u0106\2\u0116\1\333\3\u0104"+ - "\1\u0107\12\333\3\u0116\1\333\4\u0104\3\333\1\u0104\1\u0105"+ - "\1\u010f\1\333\1\u010f\3\u0104\1\333\1\361\2\333\6\u0104"+ - "\1\333\2\u0104\2\333\1\u0106\2\u0104\1\333\3\u0104\1\u0107"+ - "\12\333\3\u0104\1\333\4\u0104\3\333\1\u0104\1\u0105\1\u0117"+ - "\1\333\1\u0117\3\u0104\1\333\1\346\1\333\1\372\6\u0104"+ - "\1\333\2\u0104\2\333\1\u0106\2\u0104\1\333\3\u0104\1\u0107"+ - "\12\333\3\u0104\1\333\4\u0104\2\333\1\330\1\u0118\1\355"+ - "\1\354\1\330\1\354\1\u0118\2\354\2\0\1\330\1\252"+ - "\6\354\1\0\2\354\2\330\1\356\2\u0118\1\330\3\354"+ - "\1\357\12\330\3\u0118\1\330\4\354\2\330\1\332\1\u0119"+ - "\1\u0101\1\u0100\1\332\1\u0100\1\u0119\2\u0100\1\346\3\332"+ - "\6\u0100\1\332\2\u0100\2\332\1\u0102\2\u0119\1\332\3\u0100"+ - "\1\u0103\12\332\3\u0119\1\332\4\u0100\4\332\1\345\1\u0115"+ - "\1\332\1\u0115\3\332\1\346\2\332\1\371\13\332\1\u0102"+ - "\6\332\1\u0103\24\332\1\333\1\u011a\1\u0105\1\u0104\1\333"+ - "\1\u0104\1\u011a\2\u0104\1\333\1\346\2\333\6\u0104\1\333"+ - "\2\u0104\2\333\1\u0106\2\u011a\1\333\3\u0104\1\u0107\12\333"+ - "\3\u011a\1\333\4\u0104\4\333\1\347\1\u0117\1\333\1\u0117"+ - "\4\333\1\346\1\333\1\372\13\333\1\u0106\6\333\1\u0107"+ - "\24\333\1\330\1\u011b\1\355\1\354\1\330\1\354\1\u011b"+ - "\2\354\2\0\1\330\1\252\6\354\1\0\2\354\2\330"+ - "\1\356\2\u011b\1\330\3\354\1\357\12\330\3\u011b\1\330"+ - "\4\354\2\330\1\332\1\u011c\1\u0101\1\u0100\1\332\1\u0100"+ - "\1\u011c\2\u0100\1\346\3\332\6\u0100\1\332\2\u0100\2\332"+ - "\1\u0102\2\u011c\1\332\3\u0100\1\u0103\12\332\3\u011c\1\332"+ - "\4\u0100\2\332\1\333\1\u011d\1\u0105\1\u0104\1\333\1\u0104"+ - "\1\u011d\2\u0104\1\333\1\346\2\333\6\u0104\1\333\2\u0104"+ - "\2\333\1\u0106\2\u011d\1\333\3\u0104\1\u0107\12\333\3\u011d"+ - "\1\333\4\u0104\2\333\1\330\1\354\1\355\1\354\1\330"+ - "\4\354\2\0\1\330\1\252\6\354\1\0\2\354\2\330"+ - "\1\356\2\354\1\330\3\354\1\357\12\330\3\354\1\330"+ - "\4\354\2\330\1\332\1\u011e\1\u0101\1\u0100\1\332\1\u0100"+ - "\1\u011e\2\u0100\1\346\3\332\6\u0100\1\332\2\u0100\2\332"+ - "\1\u0102\2\u011e\1\332\3\u0100\1\u0103\12\332\3\u011e\1\332"+ - "\4\u0100\2\332\1\333\1\u011f\1\u0105\1\u0104\1\333\1\u0104"+ - "\1\u011f\2\u0104\1\333\1\346\2\333\6\u0104\1\333\2\u0104"+ - "\2\333\1\u0106\2\u011f\1\333\3\u0104\1\u0107\12\333\3\u011f"+ - "\1\333\4\u0104\2\333\1\332\1\u0120\1\u0101\1\u0100\1\332"+ - "\1\u0100\1\u0120\2\u0100\1\346\3\332\6\u0100\1\332\2\u0100"+ - "\2\332\1\u0102\2\u0120\1\332\3\u0100\1\u0103\12\332\3\u0120"+ - "\1\332\4\u0100\2\332\1\333\1\u0121\1\u0105\1\u0104\1\333"+ - "\1\u0104\1\u0121\2\u0104\1\333\1\346\2\333\6\u0104\1\333"+ - "\2\u0104\2\333\1\u0106\2\u0121\1\333\3\u0104\1\u0107\12\333"+ - "\3\u0121\1\333\4\u0104\2\333\1\332\1\u0100\1\u0101\1\u0100"+ - "\1\332\4\u0100\1\346\3\332\6\u0100\1\332\2\u0100\2\332"+ - "\1\u0102\2\u0100\1\332\3\u0100\1\u0103\12\332\3\u0100\1\332"+ - "\4\u0100\2\332\1\333\1\u0104\1\u0105\1\u0104\1\333\4\u0104"+ - "\1\333\1\346\2\333\6\u0104\1\333\2\u0104\2\333\1\u0106"+ - "\2\u0104\1\333\3\u0104\1\u0107\12\333\3\u0104\1\333\4\u0104"+ - "\2\333"; + "\1\10\1\11\1\12\1\13\6\6\2\2\1\14\1\15"+ + "\1\6\1\16\1\17\3\6\1\20\1\21\1\22\1\23"+ + "\1\16\1\24\1\25\1\16\1\26\1\2\1\27\5\6"+ + "\1\16\4\6\1\2\1\16\65\0\1\3\1\30\1\31"+ + "\1\0\1\31\3\6\2\0\1\32\1\0\6\6\1\33"+ + "\2\0\2\6\1\34\1\0\3\6\1\35\12\0\5\6"+ + "\1\0\4\6\1\36\2\0\1\37\1\6\1\0\2\6"+ + "\1\37\41\6\5\37\7\6\3\0\1\5\1\0\1\5"+ + "\30\0\1\21\1\22\25\0\1\6\1\30\1\31\1\0"+ + "\1\31\3\6\4\0\6\6\1\33\2\0\2\6\1\34"+ + "\1\0\3\6\1\35\12\0\5\6\1\0\4\6\12\0"+ + "\1\40\53\0\2\41\1\42\6\41\1\43\52\41\2\44"+ + "\1\45\7\44\1\43\51\44\1\0\1\46\63\0\1\47"+ + "\1\50\3\0\1\47\2\51\4\0\6\51\3\0\2\51"+ + "\2\0\3\51\13\0\5\47\1\0\4\51\3\0\1\6"+ + "\1\30\1\31\1\0\1\31\3\6\4\0\2\6\1\52"+ + "\3\6\1\33\2\0\2\6\1\34\1\0\3\6\1\35"+ + "\12\0\5\6\1\53\4\6\22\0\1\54\11\0\1\55"+ + "\1\56\17\0\1\57\1\60\12\0\1\21\1\0\1\21"+ + "\61\0\1\22\1\0\1\22\117\0\1\61\65\0\1\62"+ + "\23\0\1\63\1\0\1\63\12\0\1\64\111\0\1\65"+ + "\63\0\1\66\20\0\1\31\1\0\1\31\22\0\1\34"+ + "\4\0\1\35\27\0\1\67\1\70\1\34\1\0\1\34"+ + "\2\67\5\0\6\67\3\0\2\67\2\0\3\67\13\0"+ + "\5\67\1\0\4\67\3\0\1\71\1\30\1\6\1\0"+ + "\1\6\1\71\2\6\4\0\6\6\1\33\2\0\2\6"+ + "\1\34\1\0\3\6\1\35\12\0\5\71\1\0\4\6"+ + "\46\0\1\72\17\0\2\41\1\42\6\41\1\73\52\41"+ + "\2\44\1\45\7\44\1\74\51\44\1\0\1\46\13\0"+ + "\1\36\1\0\1\75\1\76\1\0\1\77\7\0\1\100"+ + "\1\101\15\0\1\102\1\103\1\0\1\104\2\0\1\105"+ + "\1\0\1\106\1\36\2\0\1\107\1\50\3\0\1\107"+ + "\2\51\4\0\6\51\3\0\2\51\2\0\3\51\13\0"+ + "\5\107\1\0\4\51\3\0\1\110\1\51\1\0\2\51"+ + "\1\110\41\51\5\110\7\51\1\0\1\51\1\50\3\0"+ + "\3\51\4\0\6\51\3\0\2\51\2\0\3\51\13\0"+ + "\5\51\1\0\4\51\3\0\1\6\1\30\1\31\1\0"+ + "\1\31\3\6\4\0\6\6\1\33\2\0\1\6\1\111"+ + "\1\34\1\0\3\6\1\35\12\0\5\6\1\0\4\6"+ + "\3\0\1\112\4\0\1\112\15\0\1\113\23\0\5\112"+ + "\41\0\1\114\102\0\1\115\62\0\1\116\47\0\1\117"+ + "\106\0\1\120\4\0\41\61\1\121\22\61\10\0\1\122"+ + "\105\0\1\123\32\0\1\67\1\70\1\31\1\0\1\31"+ + "\3\67\4\0\6\67\3\0\2\67\1\34\1\0\3\67"+ + "\1\35\12\0\5\67\1\0\4\67\3\0\1\124\1\67"+ + "\1\0\2\67\1\124\41\67\5\124\7\67\1\0\1\125"+ + "\1\30\1\6\1\0\1\6\1\125\2\6\4\0\6\6"+ + "\1\33\2\0\2\6\1\34\1\0\3\6\1\35\12\0"+ + "\5\125\1\0\4\6\52\0\1\126\34\0\1\36\61\0"+ + "\1\75\61\0\1\36\14\0\1\36\105\0\1\36\1\0"+ + "\1\36\37\0\1\36\23\0\1\36\56\0\1\127\44\0"+ + "\1\36\111\0\1\36\62\0\1\105\5\0\1\130\1\50"+ + "\3\0\1\130\2\51\4\0\6\51\3\0\2\51\2\0"+ + "\3\51\13\0\5\130\1\0\4\51\3\0\1\131\1\50"+ + "\1\51\1\0\1\51\1\131\2\51\4\0\6\51\3\0"+ + "\2\51\2\0\3\51\13\0\5\131\1\0\4\51\3\0"+ + "\1\6\1\30\1\31\1\0\1\31\3\6\4\0\6\6"+ + "\1\132\2\0\2\6\1\34\1\0\3\6\1\35\12\0"+ + "\5\6\1\0\4\6\3\0\1\133\4\0\1\133\1\0"+ + "\1\134\13\0\1\135\23\0\5\133\33\0\1\135\72\0"+ + "\1\136\102\0\1\137\33\0\1\140\62\0\1\141\112\0"+ + "\1\142\13\0\40\61\1\143\1\121\22\61\10\0\1\144"+ + "\106\0\1\145\31\0\1\146\1\70\1\67\1\0\1\67"+ + "\1\146\2\67\4\0\6\67\3\0\2\67\1\34\1\0"+ + "\3\67\1\35\12\0\5\146\1\0\4\67\3\0\1\147"+ + "\1\30\1\6\1\0\1\6\1\147\2\6\4\0\6\6"+ + "\1\33\2\0\2\6\1\34\1\0\3\6\1\35\12\0"+ + "\5\147\1\0\4\6\54\0\1\36\33\0\1\36\42\0"+ + "\1\150\1\50\3\0\1\150\2\51\4\0\6\51\3\0"+ + "\2\51\2\0\3\51\13\0\5\150\1\0\4\51\3\0"+ + "\1\151\1\50\1\51\1\0\1\51\1\151\2\51\4\0"+ + "\6\51\3\0\2\51\2\0\3\51\13\0\5\151\1\0"+ + "\4\51\2\0\2\152\1\153\1\154\1\152\1\154\3\152"+ + "\1\155\1\156\1\152\1\157\6\152\1\0\40\152\1\0"+ + "\1\160\4\0\1\160\1\0\1\134\13\0\1\161\23\0"+ + "\5\160\10\0\1\162\4\0\1\162\41\0\5\162\33\0"+ + "\1\161\73\0\1\163\47\0\1\164\114\0\1\165\30\0"+ + "\1\166\64\0\1\167\100\0\1\170\30\0\1\171\1\70"+ + "\1\67\1\0\1\67\1\171\2\67\4\0\6\67\3\0"+ + "\2\67\1\34\1\0\3\67\1\35\12\0\5\171\1\0"+ + "\4\67\3\0\1\172\1\30\1\6\1\0\1\6\1\172"+ + "\2\6\4\0\6\6\1\33\2\0\2\6\1\34\1\0"+ + "\3\6\1\35\12\0\5\172\1\0\4\6\3\0\1\173"+ + "\1\50\3\0\1\173\2\51\4\0\6\51\3\0\2\51"+ + "\2\0\3\51\13\0\5\173\1\0\4\51\3\0\1\174"+ + "\1\50\1\51\1\0\1\51\1\174\2\51\4\0\6\51"+ + "\3\0\2\51\2\0\3\51\13\0\5\174\1\0\4\51"+ + "\2\0\2\152\1\153\6\152\2\0\1\152\1\157\6\152"+ + "\1\0\42\152\1\153\11\152\1\175\47\152\2\155\1\176"+ + "\6\155\1\177\52\155\2\156\1\200\7\156\1\177\51\156"+ + "\1\0\1\201\4\0\1\201\1\0\1\134\13\0\1\202"+ + "\23\0\5\201\33\0\1\202\40\0\1\203\4\0\1\203"+ + "\41\0\5\203\26\0\1\204\114\0\1\205\23\0\1\206"+ + "\70\0\1\207\65\0\1\210\45\0\1\211\1\70\1\67"+ + "\1\0\1\67\1\211\2\67\4\0\6\67\3\0\2\67"+ + "\1\34\1\0\3\67\1\35\12\0\5\211\1\0\4\67"+ + "\3\0\1\212\1\30\1\6\1\0\1\6\1\212\2\6"+ + "\4\0\6\6\1\33\2\0\2\6\1\34\1\0\3\6"+ + "\1\35\12\0\5\212\1\0\4\6\3\0\1\213\1\50"+ + "\3\0\1\213\2\51\4\0\6\51\3\0\2\51\2\0"+ + "\3\51\13\0\5\213\1\0\4\51\3\0\1\214\1\50"+ + "\1\51\1\0\1\51\1\214\2\51\4\0\6\51\3\0"+ + "\2\51\2\0\3\51\13\0\5\214\1\0\4\51\2\0"+ + "\2\155\1\176\6\155\1\215\52\155\3\0\1\177\1\0"+ + "\1\177\6\0\1\157\47\0\2\156\1\200\7\156\1\216"+ + "\51\156\1\0\1\217\4\0\1\217\1\0\1\134\13\0"+ + "\1\220\23\0\5\217\33\0\1\220\40\0\1\221\4\0"+ + "\1\221\41\0\5\221\25\0\1\222\46\0\1\223\1\224"+ + "\1\205\1\0\1\205\2\223\5\0\6\223\3\0\2\223"+ + "\2\0\3\223\13\0\5\223\1\0\4\223\55\0\1\225"+ + "\61\0\1\226\30\0\1\227\46\0\1\230\1\70\1\67"+ + "\1\0\1\67\1\230\2\67\4\0\6\67\3\0\2\67"+ + "\1\34\1\0\3\67\1\35\12\0\5\230\1\0\4\67"+ + "\3\0\1\6\1\30\1\6\1\0\4\6\4\0\6\6"+ + "\1\33\2\0\2\6\1\34\1\0\3\6\1\35\12\0"+ + "\5\6\1\0\4\6\3\0\1\231\1\50\1\51\1\0"+ + "\1\51\1\231\2\51\4\0\6\51\3\0\2\51\2\0"+ + "\3\51\13\0\5\231\1\0\4\51\2\0\2\155\1\176"+ + "\1\215\1\155\1\215\3\155\1\177\2\155\1\232\47\155"+ + "\2\156\1\200\1\216\1\156\1\216\4\156\1\177\1\156"+ + "\1\233\47\156\1\0\1\234\4\0\1\234\1\0\1\134"+ + "\13\0\1\235\23\0\5\234\33\0\1\235\40\0\1\236"+ + "\4\0\1\236\41\0\5\236\7\0\2\237\1\240\1\222"+ + "\1\237\1\222\3\237\1\241\1\242\1\237\1\0\6\237"+ + "\1\0\2\237\1\243\6\237\1\244\26\237\1\0\1\223"+ + "\1\224\1\245\1\0\1\245\3\223\4\0\6\223\3\0"+ + "\2\223\1\205\1\0\3\223\13\0\5\223\1\0\4\223"+ + "\3\0\1\246\1\223\1\0\2\223\1\246\41\223\5\246"+ + "\7\223\50\0\1\247\31\0\1\250\115\0\1\251\14\0"+ + "\1\252\1\70\1\67\1\0\1\67\1\252\2\67\4\0"+ + "\6\67\3\0\2\67\1\34\1\0\3\67\1\35\12\0"+ + "\5\252\1\0\4\67\3\0\1\51\1\50\1\51\1\0"+ + "\4\51\4\0\6\51\3\0\2\51\2\0\3\51\13\0"+ + "\5\51\1\0\4\51\12\0\1\134\54\0\1\253\4\0"+ + "\1\253\41\0\5\253\7\0\2\237\1\240\6\237\2\0"+ + "\1\237\1\0\6\237\1\0\11\237\1\244\30\237\1\240"+ + "\32\237\1\244\26\237\2\241\1\254\6\241\1\255\52\241"+ + "\2\242\1\256\7\242\1\255\51\242\2\237\1\240\6\237"+ + "\2\0\1\237\1\0\2\237\1\257\3\237\1\0\11\237"+ + "\1\244\26\237\3\0\1\245\1\0\1\245\22\0\1\205"+ + "\34\0\1\260\1\224\1\223\1\0\1\223\1\260\2\223"+ + "\4\0\6\223\3\0\2\223\1\205\1\0\3\223\13\0"+ + "\5\260\1\0\4\223\56\0\1\261\12\0\1\250\1\0"+ + "\1\250\3\0\1\262\1\263\72\0\1\264\43\0\1\67"+ + "\1\70\1\67\1\0\4\67\4\0\6\67\3\0\2\67"+ + "\1\34\1\0\3\67\1\35\12\0\5\67\1\0\4\67"+ + "\3\0\1\265\4\0\1\265\41\0\5\265\7\0\2\241"+ + "\1\254\6\241\1\266\52\241\1\0\1\267\1\270\1\271"+ + "\1\0\1\271\2\267\5\0\6\267\3\0\2\267\2\0"+ + "\3\267\1\272\12\0\5\267\1\0\4\267\2\0\2\242"+ + "\1\256\7\242\1\273\51\242\2\237\1\240\6\237\2\0"+ + "\1\237\1\0\6\237\1\0\3\237\1\274\5\237\1\244"+ + "\26\237\1\0\1\275\1\224\1\223\1\0\1\223\1\275"+ + "\2\223\4\0\6\223\3\0\2\223\1\205\1\0\3\223"+ + "\13\0\5\275\1\0\4\223\53\0\1\276\12\0\2\262"+ + "\1\277\6\262\1\300\52\262\2\263\1\301\7\263\1\300"+ + "\51\263\16\0\1\302\45\0\1\241\1\303\1\304\1\305"+ + "\1\241\1\305\2\303\1\241\1\255\3\241\6\303\3\241"+ + "\2\303\2\241\3\303\1\306\12\241\5\303\1\241\4\303"+ + "\2\241\1\0\1\267\1\270\1\307\1\0\1\307\3\267"+ + "\4\0\6\267\3\0\2\267\1\271\1\0\3\267\1\272"+ + "\12\0\5\267\1\0\4\267\3\0\1\310\1\267\1\0"+ + "\2\267\1\310\41\267\5\310\7\267\1\0\1\267\1\270"+ + "\1\271\1\0\1\271\2\267\5\0\6\267\3\0\2\267"+ + "\2\0\3\267\13\0\5\267\1\0\4\267\2\0\1\242"+ + "\1\311\1\312\1\313\1\242\1\313\2\311\2\242\1\255"+ + "\2\242\6\311\3\242\2\311\2\242\3\311\1\314\12\242"+ + "\5\311\1\242\4\311\2\242\2\237\1\240\6\237\2\0"+ + "\1\237\1\0\6\237\1\315\11\237\1\244\26\237\1\0"+ + "\1\316\1\224\1\223\1\0\1\223\1\316\2\223\4\0"+ + "\6\223\3\0\2\223\1\205\1\0\3\223\13\0\5\316"+ + "\1\0\4\223\2\0\2\262\1\277\6\262\1\317\52\262"+ + "\3\0\1\300\1\0\1\300\27\0\1\320\26\0\2\263"+ + "\1\301\7\263\1\321\51\263\1\241\1\303\1\304\1\322"+ + "\1\241\1\322\3\303\1\255\3\241\6\303\3\241\2\303"+ + "\1\305\1\241\3\303\1\306\12\241\5\303\1\241\4\303"+ + "\3\241\1\323\1\324\1\241\2\303\1\323\2\303\1\325"+ + "\36\303\5\323\7\303\1\241\1\303\1\304\1\305\1\241"+ + "\1\305\2\303\1\241\1\255\3\241\6\303\3\241\2\303"+ + "\2\241\3\303\13\241\5\303\1\241\4\303\2\241\3\0"+ + "\1\307\1\0\1\307\22\0\1\271\4\0\1\272\27\0"+ + "\1\326\1\270\1\267\1\0\1\267\1\326\2\267\4\0"+ + "\6\267\3\0\2\267\1\271\1\0\3\267\1\272\12\0"+ + "\5\326\1\0\4\267\2\0\1\242\1\311\1\312\1\327"+ + "\1\242\1\327\3\311\1\242\1\255\2\242\6\311\3\242"+ + "\2\311\1\313\1\242\3\311\1\314\12\242\5\311\1\242"+ + "\4\311\3\242\1\330\1\331\1\242\2\311\1\330\3\311"+ + "\1\332\35\311\5\330\7\311\1\242\1\311\1\312\1\313"+ + "\1\242\1\313\2\311\2\242\1\255\2\242\6\311\3\242"+ + "\2\311\2\242\3\311\13\242\5\311\1\242\4\311\2\242"+ + "\2\333\1\334\1\315\1\333\1\315\3\333\1\335\1\336"+ + "\1\333\1\255\6\333\1\0\40\333\1\0\1\337\1\224"+ + "\1\223\1\0\1\223\1\337\2\223\4\0\6\223\3\0"+ + "\2\223\1\205\1\0\3\223\13\0\5\337\1\0\4\223"+ + "\2\0\2\262\1\277\1\317\1\262\1\317\3\262\1\300"+ + "\23\262\1\340\26\262\2\263\1\301\1\321\1\263\1\321"+ + "\4\263\1\300\22\263\1\341\26\263\2\241\1\254\1\322"+ + "\1\241\1\322\3\241\1\255\16\241\1\305\4\241\1\306"+ + "\27\241\1\342\1\304\1\303\1\241\1\303\1\342\2\303"+ + "\1\255\3\241\6\303\3\241\2\303\1\305\1\241\3\303"+ + "\1\306\12\241\5\342\1\241\4\303\3\241\1\303\1\304"+ + "\1\322\1\241\1\322\3\303\1\266\3\241\6\303\3\241"+ + "\2\303\1\305\1\241\3\303\1\306\12\241\5\303\1\241"+ + "\4\303\3\241\1\303\1\304\1\343\1\241\1\343\3\303"+ + "\1\255\3\241\6\303\3\241\2\303\1\305\1\241\3\303"+ + "\1\306\12\241\5\303\1\241\4\303\2\241\1\0\1\344"+ + "\1\270\1\267\1\0\1\267\1\344\2\267\4\0\6\267"+ + "\3\0\2\267\1\271\1\0\3\267\1\272\12\0\5\344"+ + "\1\0\4\267\2\0\2\242\1\256\1\327\1\242\1\327"+ + "\4\242\1\255\15\242\1\313\4\242\1\314\27\242\1\345"+ + "\1\312\1\311\1\242\1\311\1\345\2\311\1\242\1\255"+ + "\2\242\6\311\3\242\2\311\1\313\1\242\3\311\1\314"+ + "\12\242\5\345\1\242\4\311\3\242\1\311\1\312\1\327"+ + "\1\242\1\327\3\311\1\242\1\273\2\242\6\311\3\242"+ + "\2\311\1\313\1\242\3\311\1\314\12\242\5\311\1\242"+ + "\4\311\3\242\1\311\1\312\1\346\1\242\1\346\3\311"+ + "\1\242\1\255\2\242\6\311\3\242\2\311\1\313\1\242"+ + "\3\311\1\314\12\242\5\311\1\242\4\311\2\242\2\333"+ + "\1\334\6\333\2\0\1\333\1\255\6\333\1\0\42\333"+ + "\1\334\11\333\1\347\47\333\2\335\1\350\6\335\1\351"+ + "\52\335\2\336\1\352\7\336\1\351\51\336\1\0\1\353"+ + "\1\224\1\223\1\0\1\223\1\353\2\223\4\0\6\223"+ + "\3\0\2\223\1\205\1\0\3\223\13\0\5\353\1\0"+ + "\4\223\2\0\1\241\1\354\1\304\1\303\1\241\1\303"+ + "\1\354\2\303\1\255\3\241\6\303\3\241\2\303\1\305"+ + "\1\241\3\303\1\306\12\241\5\354\1\241\4\303\3\241"+ + "\1\303\1\304\1\343\1\241\1\343\2\303\1\241\1\255"+ + "\3\241\6\303\3\241\2\303\1\305\1\241\3\303\1\306"+ + "\12\241\5\303\1\241\4\303\2\241\1\0\1\355\1\270"+ + "\1\267\1\0\1\267\1\355\2\267\4\0\6\267\3\0"+ + "\2\267\1\271\1\0\3\267\1\272\12\0\5\355\1\0"+ + "\4\267\2\0\1\242\1\356\1\312\1\311\1\242\1\311"+ + "\1\356\2\311\1\242\1\255\2\242\6\311\3\242\2\311"+ + "\1\313\1\242\3\311\1\314\12\242\5\356\1\242\4\311"+ + "\3\242\1\311\1\312\1\346\1\242\1\346\2\311\2\242"+ + "\1\255\2\242\6\311\3\242\2\311\1\313\1\242\3\311"+ + "\1\314\12\242\5\311\1\242\4\311\2\242\1\333\1\357"+ + "\1\360\1\361\1\333\1\361\2\357\1\333\2\0\1\333"+ + "\1\255\6\357\1\0\2\333\2\357\2\333\3\357\1\362"+ + "\12\333\5\357\1\333\4\357\2\333\2\335\1\350\6\335"+ + "\1\363\52\335\3\0\1\351\1\0\1\351\6\0\1\255"+ + "\47\0\2\336\1\352\7\336\1\364\51\336\1\0\1\223"+ + "\1\224\1\223\1\0\4\223\4\0\6\223\3\0\2\223"+ + "\1\205\1\0\3\223\13\0\5\223\1\0\4\223\2\0"+ + "\1\241\1\365\1\304\1\303\1\241\1\303\1\365\2\303"+ + "\1\255\3\241\6\303\3\241\2\303\1\305\1\241\3\303"+ + "\1\306\12\241\5\365\1\241\4\303\2\241\1\0\1\366"+ + "\1\270\1\267\1\0\1\267\1\366\2\267\4\0\6\267"+ + "\3\0\2\267\1\271\1\0\3\267\1\272\12\0\5\366"+ + "\1\0\4\267\2\0\1\242\1\367\1\312\1\311\1\242"+ + "\1\311\1\367\2\311\1\242\1\255\2\242\6\311\3\242"+ + "\2\311\1\313\1\242\3\311\1\314\12\242\5\367\1\242"+ + "\4\311\2\242\1\333\1\357\1\360\1\370\1\333\1\370"+ + "\3\357\2\0\1\333\1\255\6\357\1\0\2\333\2\357"+ + "\1\361\1\333\3\357\1\362\12\333\5\357\1\333\4\357"+ + "\3\333\1\371\1\372\1\333\2\357\1\371\5\357\1\373"+ + "\33\357\5\371\7\357\1\333\1\357\1\360\1\361\1\333"+ + "\1\361\2\357\1\333\2\0\1\333\1\255\6\357\1\0"+ + "\2\333\2\357\2\333\3\357\13\333\5\357\1\333\4\357"+ + "\2\333\2\335\1\350\1\363\1\335\1\363\3\335\1\351"+ + "\2\335\1\374\47\335\2\336\1\352\1\364\1\336\1\364"+ + "\4\336\1\351\1\336\1\375\47\336\1\241\1\376\1\304"+ + "\1\303\1\241\1\303\1\376\2\303\1\255\3\241\6\303"+ + "\3\241\2\303\1\305\1\241\3\303\1\306\12\241\5\376"+ + "\1\241\4\303\2\241\1\0\1\377\1\270\1\267\1\0"+ + "\1\267\1\377\2\267\4\0\6\267\3\0\2\267\1\271"+ + "\1\0\3\267\1\272\12\0\5\377\1\0\4\267\2\0"+ + "\1\242\1\u0100\1\312\1\311\1\242\1\311\1\u0100\2\311"+ + "\1\242\1\255\2\242\6\311\3\242\2\311\1\313\1\242"+ + "\3\311\1\314\12\242\5\u0100\1\242\4\311\2\242\2\333"+ + "\1\334\1\370\1\333\1\370\3\333\2\0\1\333\1\255"+ + "\6\333\1\0\4\333\1\361\4\333\1\362\27\333\1\u0101"+ + "\1\360\1\357\1\333\1\357\1\u0101\2\357\2\0\1\333"+ + "\1\255\6\357\1\0\2\333\2\357\1\361\1\333\3\357"+ + "\1\362\12\333\5\u0101\1\333\4\357\3\333\1\357\1\360"+ + "\1\370\1\333\1\370\3\357\3\333\1\347\6\357\3\333"+ + "\2\357\1\361\1\333\3\357\1\362\12\333\5\357\1\333"+ + "\4\357\3\333\1\357\1\360\1\u0102\1\333\1\u0102\3\357"+ + "\2\0\1\333\1\255\6\357\1\0\2\333\2\357\1\361"+ + "\1\333\3\357\1\362\12\333\5\357\1\333\4\357\2\333"+ + "\1\335\1\u0103\1\u0104\1\u0105\1\335\1\u0105\2\u0103\1\335"+ + "\1\351\3\335\6\u0103\3\335\2\u0103\2\335\3\u0103\1\u0106"+ + "\12\335\5\u0103\1\335\4\u0103\2\335\1\336\1\u0107\1\u0108"+ + "\1\u0109\1\336\1\u0109\2\u0107\2\336\1\351\2\336\6\u0107"+ + "\3\336\2\u0107\2\336\3\u0107\1\u010a\12\336\5\u0107\1\336"+ + "\4\u0107\2\336\1\241\1\u010b\1\304\1\303\1\241\1\303"+ + "\1\u010b\2\303\1\255\3\241\6\303\3\241\2\303\1\305"+ + "\1\241\3\303\1\306\12\241\5\u010b\1\241\4\303\2\241"+ + "\1\0\1\267\1\270\1\267\1\0\4\267\4\0\6\267"+ + "\3\0\2\267\1\271\1\0\3\267\1\272\12\0\5\267"+ + "\1\0\4\267\2\0\1\242\1\u010c\1\312\1\311\1\242"+ + "\1\311\1\u010c\2\311\1\242\1\255\2\242\6\311\3\242"+ + "\2\311\1\313\1\242\3\311\1\314\12\242\5\u010c\1\242"+ + "\4\311\2\242\1\333\1\u010d\1\360\1\357\1\333\1\357"+ + "\1\u010d\2\357\2\0\1\333\1\255\6\357\1\0\2\333"+ + "\2\357\1\361\1\333\3\357\1\362\12\333\5\u010d\1\333"+ + "\4\357\3\333\1\357\1\360\1\u0102\1\333\1\u0102\2\357"+ + "\1\333\2\0\1\333\1\255\6\357\1\0\2\333\2\357"+ + "\1\361\1\333\3\357\1\362\12\333\5\357\1\333\4\357"+ + "\2\333\1\335\1\u0103\1\u0104\1\u010e\1\335\1\u010e\3\u0103"+ + "\1\351\3\335\6\u0103\3\335\2\u0103\1\u0105\1\335\3\u0103"+ + "\1\u0106\12\335\5\u0103\1\335\4\u0103\3\335\1\u010f\1\u0110"+ + "\1\335\2\u0103\1\u010f\2\u0103\1\u0111\36\u0103\5\u010f\7\u0103"+ + "\1\335\1\u0103\1\u0104\1\u0105\1\335\1\u0105\2\u0103\1\335"+ + "\1\351\3\335\6\u0103\3\335\2\u0103\2\335\3\u0103\13\335"+ + "\5\u0103\1\335\4\u0103\2\335\1\336\1\u0107\1\u0108\1\u0112"+ + "\1\336\1\u0112\3\u0107\1\336\1\351\2\336\6\u0107\3\336"+ + "\2\u0107\1\u0109\1\336\3\u0107\1\u010a\12\336\5\u0107\1\336"+ + "\4\u0107\3\336\1\u0113\1\u0114\1\336\2\u0107\1\u0113\3\u0107"+ + "\1\u0115\35\u0107\5\u0113\7\u0107\1\336\1\u0107\1\u0108\1\u0109"+ + "\1\336\1\u0109\2\u0107\2\336\1\351\2\336\6\u0107\3\336"+ + "\2\u0107\2\336\3\u0107\13\336\5\u0107\1\336\4\u0107\2\336"+ + "\1\241\1\303\1\304\1\303\1\241\4\303\1\255\3\241"+ + "\6\303\3\241\2\303\1\305\1\241\3\303\1\306\12\241"+ + "\5\303\1\241\4\303\2\241\1\242\1\311\1\312\1\311"+ + "\1\242\4\311\1\242\1\255\2\242\6\311\3\242\2\311"+ + "\1\313\1\242\3\311\1\314\12\242\5\311\1\242\4\311"+ + "\2\242\1\333\1\u0116\1\360\1\357\1\333\1\357\1\u0116"+ + "\2\357\2\0\1\333\1\255\6\357\1\0\2\333\2\357"+ + "\1\361\1\333\3\357\1\362\12\333\5\u0116\1\333\4\357"+ + "\2\333\2\335\1\350\1\u010e\1\335\1\u010e\3\335\1\351"+ + "\16\335\1\u0105\4\335\1\u0106\27\335\1\u0117\1\u0104\1\u0103"+ + "\1\335\1\u0103\1\u0117\2\u0103\1\351\3\335\6\u0103\3\335"+ + "\2\u0103\1\u0105\1\335\3\u0103\1\u0106\12\335\5\u0117\1\335"+ + "\4\u0103\3\335\1\u0103\1\u0104\1\u010e\1\335\1\u010e\3\u0103"+ + "\1\363\3\335\6\u0103\3\335\2\u0103\1\u0105\1\335\3\u0103"+ + "\1\u0106\12\335\5\u0103\1\335\4\u0103\3\335\1\u0103\1\u0104"+ + "\1\u0118\1\335\1\u0118\3\u0103\1\351\2\335\1\374\6\u0103"+ + "\3\335\2\u0103\1\u0105\1\335\3\u0103\1\u0106\12\335\5\u0103"+ + "\1\335\4\u0103\2\335\2\336\1\352\1\u0112\1\336\1\u0112"+ + "\4\336\1\351\15\336\1\u0109\4\336\1\u010a\27\336\1\u0119"+ + "\1\u0108\1\u0107\1\336\1\u0107\1\u0119\2\u0107\1\336\1\351"+ + "\2\336\6\u0107\3\336\2\u0107\1\u0109\1\336\3\u0107\1\u010a"+ + "\12\336\5\u0119\1\336\4\u0107\3\336\1\u0107\1\u0108\1\u0112"+ + "\1\336\1\u0112\3\u0107\1\336\1\364\2\336\6\u0107\3\336"+ + "\2\u0107\1\u0109\1\336\3\u0107\1\u010a\12\336\5\u0107\1\336"+ + "\4\u0107\3\336\1\u0107\1\u0108\1\u011a\1\336\1\u011a\3\u0107"+ + "\1\336\1\351\1\336\1\375\6\u0107\3\336\2\u0107\1\u0109"+ + "\1\336\3\u0107\1\u010a\12\336\5\u0107\1\336\4\u0107\2\336"+ + "\1\333\1\u011b\1\360\1\357\1\333\1\357\1\u011b\2\357"+ + "\2\0\1\333\1\255\6\357\1\0\2\333\2\357\1\361"+ + "\1\333\3\357\1\362\12\333\5\u011b\1\333\4\357\2\333"+ + "\1\335\1\u011c\1\u0104\1\u0103\1\335\1\u0103\1\u011c\2\u0103"+ + "\1\351\3\335\6\u0103\3\335\2\u0103\1\u0105\1\335\3\u0103"+ + "\1\u0106\12\335\5\u011c\1\335\4\u0103\4\335\1\350\1\u0118"+ + "\1\335\1\u0118\3\335\1\351\2\335\1\374\13\335\1\u0105"+ + "\4\335\1\u0106\26\335\1\336\1\u011d\1\u0108\1\u0107\1\336"+ + "\1\u0107\1\u011d\2\u0107\1\336\1\351\2\336\6\u0107\3\336"+ + "\2\u0107\1\u0109\1\336\3\u0107\1\u010a\12\336\5\u011d\1\336"+ + "\4\u0107\4\336\1\352\1\u011a\1\336\1\u011a\4\336\1\351"+ + "\1\336\1\375\13\336\1\u0109\4\336\1\u010a\26\336\1\333"+ + "\1\u011e\1\360\1\357\1\333\1\357\1\u011e\2\357\2\0"+ + "\1\333\1\255\6\357\1\0\2\333\2\357\1\361\1\333"+ + "\3\357\1\362\12\333\5\u011e\1\333\4\357\2\333\1\335"+ + "\1\u011f\1\u0104\1\u0103\1\335\1\u0103\1\u011f\2\u0103\1\351"+ + "\3\335\6\u0103\3\335\2\u0103\1\u0105\1\335\3\u0103\1\u0106"+ + "\12\335\5\u011f\1\335\4\u0103\2\335\1\336\1\u0120\1\u0108"+ + "\1\u0107\1\336\1\u0107\1\u0120\2\u0107\1\336\1\351\2\336"+ + "\6\u0107\3\336\2\u0107\1\u0109\1\336\3\u0107\1\u010a\12\336"+ + "\5\u0120\1\336\4\u0107\2\336\1\333\1\357\1\360\1\357"+ + "\1\333\4\357\2\0\1\333\1\255\6\357\1\0\2\333"+ + "\2\357\1\361\1\333\3\357\1\362\12\333\5\357\1\333"+ + "\4\357\2\333\1\335\1\u0121\1\u0104\1\u0103\1\335\1\u0103"+ + "\1\u0121\2\u0103\1\351\3\335\6\u0103\3\335\2\u0103\1\u0105"+ + "\1\335\3\u0103\1\u0106\12\335\5\u0121\1\335\4\u0103\2\335"+ + "\1\336\1\u0122\1\u0108\1\u0107\1\336\1\u0107\1\u0122\2\u0107"+ + "\1\336\1\351\2\336\6\u0107\3\336\2\u0107\1\u0109\1\336"+ + "\3\u0107\1\u010a\12\336\5\u0122\1\336\4\u0107\2\336\1\335"+ + "\1\u0123\1\u0104\1\u0103\1\335\1\u0103\1\u0123\2\u0103\1\351"+ + "\3\335\6\u0103\3\335\2\u0103\1\u0105\1\335\3\u0103\1\u0106"+ + "\12\335\5\u0123\1\335\4\u0103\2\335\1\336\1\u0124\1\u0108"+ + "\1\u0107\1\336\1\u0107\1\u0124\2\u0107\1\336\1\351\2\336"+ + "\6\u0107\3\336\2\u0107\1\u0109\1\336\3\u0107\1\u010a\12\336"+ + "\5\u0124\1\336\4\u0107\2\336\1\335\1\u0103\1\u0104\1\u0103"+ + "\1\335\4\u0103\1\351\3\335\6\u0103\3\335\2\u0103\1\u0105"+ + "\1\335\3\u0103\1\u0106\12\335\5\u0103\1\335\4\u0103\2\335"+ + "\1\336\1\u0107\1\u0108\1\u0107\1\336\4\u0107\1\336\1\351"+ + "\2\336\6\u0107\3\336\2\u0107\1\u0109\1\336\3\u0107\1\u010a"+ + "\12\336\5\u0107\1\336\4\u0107\2\336"; private static int [] zzUnpackTrans() { - int [] result = new int[13000]; + int [] result = new int[13104]; int offset = 0; offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); return result; @@ -617,21 +578,21 @@ private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\1\0\1\11\10\1\1\11\3\1\1\11\1\1\1\11"+ + "\1\0\1\11\10\1\1\11\2\1\1\11\1\1\1\11"+ "\7\1\3\0\1\11\1\0\2\11\1\1\3\0\1\11"+ - "\2\0\3\1\1\0\1\1\1\0\1\1\11\0\2\11"+ - "\2\0\1\1\1\11\2\1\12\0\6\1\11\0\1\1"+ - "\2\0\3\1\1\0\3\1\5\0\2\11\2\0\2\1"+ - "\2\0\1\11\5\1\2\0\1\11\4\0\10\1\6\0"+ - "\7\1\1\0\1\1\5\0\1\1\1\11\2\1\5\0"+ - "\3\1\4\0\1\1\4\0\1\1\4\0\1\11\4\0"+ - "\1\11\2\0\1\1\1\11\3\0\1\11\3\0\1\1"+ - "\5\0\1\1\1\0\1\1\1\0\1\11\16\0\3\1"+ - "\11\0\1\1\6\0\1\1\23\0\1\1\3\0\1\1"+ - "\32\0"; + "\2\0\2\1\1\0\2\1\12\0\2\11\2\0\1\1"+ + "\1\11\2\1\12\0\5\1\11\0\1\1\2\0\4\1"+ + "\1\0\1\1\5\0\2\11\2\0\3\1\5\0\1\11"+ + "\3\1\2\0\1\11\4\0\4\1\3\0\3\1\6\0"+ + "\3\1\2\0\3\1\1\0\1\1\5\0\4\1\1\11"+ + "\1\1\5\0\3\1\4\0\1\1\4\0\1\1\4\0"+ + "\1\11\4\0\1\11\2\0\1\1\1\11\3\0\1\11"+ + "\3\0\1\1\5\0\1\1\1\0\1\1\1\0\1\11"+ + "\16\0\3\1\11\0\1\1\6\0\1\1\23\0\1\1"+ + "\3\0\1\1\32\0"; private static int [] zzUnpackAttribute() { - int [] result = new int[289]; + int [] result = new int[292]; int offset = 0; offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); return result; @@ -846,10 +807,11 @@ } } } + x++; data = buffer.toString(); - if(s.length() > x) - suffix = s.substring(x); - else suffix = ""; + if(url && s.length() > x+1 && s.charAt(x) == ')') + x++; + suffix = s.substring(x); } public String toString() { @@ -1169,25 +1131,25 @@ w.write(s); if(debug) log("Matched unicode: "+s); } - case 31: break; + case 30: break; case 8: { String s = yytext(); w.write(s); if(debug) log("Matched close braces: "+s); } - case 32: break; + case 31: break; case 21: { String s = yytext(); w.write(s); if(debug) log("Matched HTML comment: "+s); } - case 33: break; + case 32: break; case 15: { String s = yytext(); w.write(s); if(debug) log("Matched ~=: "+s); } - case 34: break; + case 33: break; case 12: { String s = yytext(); if(debug) log("Matched string: "+s); @@ -1198,96 +1160,90 @@ w.write(s); } } - case 35: break; + case 34: break; case 24: { String s = yytext(); w.write(s); if(debug) log("Matched @page: "+s); } - case 36: break; + case 35: break; case 13: { String s = yytext(); w.write(s); if(debug) log("Matched number: "+s); } - case 37: break; + case 36: break; case 1: { String s = yytext(); char c = s.charAt(0); log("Matched anything: "+yytext()+" - ignoring"); w.write("/* ignored unmatched char: "+c+" */"); // single char cannot break out of comment } - case 38: break; + case 37: break; case 6: { String s = yytext(); w.write(s); if(debug) log("Matched semicolon: "+s); } - case 39: break; + case 38: break; case 19: { String s = yytext(); if(debug) log("Got hexcolor: "+s); w.write(s); } - case 40: break; + case 39: break; case 7: { String s = yytext(); w.write(s); if(debug) log("Matched open braces: "+s); } - case 41: break; - case 26: + case 40: break; + case 25: { String s = yytext(); s = s.substring("@media".length()).trim(); w.write("@media "+s+" "); if(debug) log("Matched @media: "+s); } - case 42: break; + case 41: break; case 2: { String s = yytext(); w.write(s); if(debug) log("Matched ident: "+s); } - case 43: break; + case 42: break; case 23: { String s = yytext(); w.write(s); if(debug) log("Matched unicode range: "+s); } - case 44: break; - case 28: + case 43: break; + case 27: { String s = yytext(); w.write(s); if(debug) log("Matched @font-face: "+s); } - case 45: break; + case 44: break; case 9: { String s = yytext(); if(s.startsWith("url")) throwError("Invalid contents of url()"); w.write(s); if(debug) log("Matched function start: "+s); } - case 46: break; + case 45: break; case 17: { String s = yytext(); w.write(s); if(debug) log("Matched HTML comment: "+s); } - case 47: break; + case 46: break; case 3: { String s = yytext(); w.write(s); if(debug) log("Matched whitespace: "+s); } - case 48: break; - case 22: + case 47: break; + case 26: { String s = yytext(); - if(debug) log("Ignoring unrecognizable url: "+s); - w.write("/* Ignoring unmatchable URL */url()"); - } - case 49: break; - case 27: - { String s = yytext(); if(debug) log("Found @import: "+s); s = s.substring("@import".length()); s = s.trim(); @@ -1306,13 +1262,13 @@ } else if(debug) log("Dropped @import"); } - case 50: break; - case 29: + case 48: break; + case 28: { String s = yytext(); w.write(s); if(debug) log("Matched important: "+s); } - case 51: break; + case 49: break; case 20: { String s = yytext(); StringBuffer sb = new StringBuffer(s.length()); @@ -1337,8 +1293,8 @@ w.write(sb.toString()); if(debug) log("Matched comment: "+s+" -> "+sb.toString()); } - case 52: break; - case 25: + case 50: break; + case 22: { // This is horrible. However it seems that there is no other way to do it with either jflex or CUP, as {URL} cannot be an unambiguous token :( String s = yytext(); if(debug) log("Recognized URL: "+s); @@ -1366,26 +1322,26 @@ w.write(s); } } - case 53: break; + case 51: break; case 11: { String s = yytext(); w.write(s); if(debug) log("Matched measurement: "+s); } - case 54: break; + case 52: break; case 16: { String s = yytext(); w.write(s); if(debug) log("Matched |=: "+s); } - case 55: break; - case 30: + case 53: break; + case 29: { String s = yytext(); detectedCharset = s; if(debug) log("Matched and ignoring charset: "+s); // Ignore } - case 56: break; + case 54: break; case 10: { if(postBadImportFlag) { // Ignore @@ -1398,25 +1354,25 @@ if(debug) log("Matched and passing on mediums list: "+s); } } - case 57: break; + case 55: break; case 4: { String s = yytext(); w.write(s); if(debug) log("Matched single char: "+s); } - case 58: break; + case 56: break; case 14: { String s = yytext(); w.write(s); if(debug) log("Matched #name: "+s); } - case 59: break; + case 57: break; case 5: { String s = yytext(); w.write(s); if(debug) log("Matched function end: "+s); } - case 60: break; + case 58: break; default: if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { zzAtEOF = true; Modified: trunk/freenet/src/freenet/clients/http/filter/CSSTokenizerFilter.jflex =================================================================== --- trunk/freenet/src/freenet/clients/http/filter/CSSTokenizerFilter.jflex 2006-09-29 13:37:58 UTC (rev 10565) +++ trunk/freenet/src/freenet/clients/http/filter/CSSTokenizerFilter.jflex 2006-09-29 13:48:54 UTC (rev 10566) @@ -158,10 +158,11 @@ } } } + x++; data = buffer.toString(); - if(s.length() > x) - suffix = s.substring(x); - else suffix = ""; + if(url && s.length() > x+1 && s.charAt(x) == ')') + x++; + suffix = s.substring(x); } public String toString() { @@ -203,8 +204,8 @@ // The spec (http://www.w3.org/TR/REC-CSS2/grammar.html, mostly D.2 for this bit) // is on crack wrt string/url, so this is guesswork -STRING1=\"(\\{NL}|\'|\\\"|{NONASCII}|{ESCAPE}|[^\"])*\" -STRING2=\'(\\{NL}|\"|\\\'|{NONASCII}|{ESCAPE}|[^\'])*\' +STRING1=\"(\\{NL}|\'|(\\\")|{NONASCII}|{ESCAPE}|[^\"])*\" +STRING2=\'(\\{NL}|\"|(\\\')|{NONASCII}|{ESCAPE}|[^\'])*\' IDENT={NMSTART}{NMCHAR}* NAME={NMCHAR}+ @@ -214,13 +215,14 @@ // See comments for STRING1/STRING2 :) URL=([^\(\)\"\']|{NONASCII}|{ESCAPE})* -REALURL="url("{W}*({STRING}|{URL}){W}")" W=[ \t\r\n\f]* NL=\n|\r\n|\r|\f RANGE=\?{1,6}|{H}(\?{0,5}|{H}(\?{0,4}|{H}(\?{0,3}|{H}(\?{0,2}|{H}(\??|{H}))))) HEXCOLOR="#"(({H}{H}{H})|({H}{H}{H}{H}{H}{H})) +REALURL="url("{W}({STRING}|{URL}){W}")" + // From grammer MEDIUM={IDENT}{W}* // As distinct from MEDIA, which allows rulesets @@ -236,7 +238,7 @@ if(debug) log("Got hexcolor: "+s); w.write(s); } -REALURL { +{REALURL} { // This is horrible. However it seems that there is no other way to do it with either jflex or CUP, as {URL} cannot be an unambiguous token :( String s = yytext(); if(debug) log("Recognized URL: "+s); @@ -415,11 +417,6 @@ if(debug) log("Matched and ignoring charset: "+s); // Ignore } -"url("{INBRACKET}")" { - String s = yytext(); - if(debug) log("Ignoring unrecognizable url: "+s); - w.write("/* Ignoring unmatchable URL */url()"); -} {IDENT}"(" { String s = yytext(); if(s.startsWith("url")) throwError("Invalid contents of url()");
