1 /*
2  * Copyright (c) 2008-2017 Mozilla Foundation
3  *
4  * Permission is hereby granted, free of charge, to any person obtaining a
5  * copy of this software and associated documentation files (the "Software"),
6  * to deal in the Software without restriction, including without limitation
7  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8  * and/or sell copies of the Software, and to permit persons to whom the
9  * Software is furnished to do so, subject to the following conditions:
10  *
11  * The above copyright notice and this permission notice shall be included in
12  * all copies or substantial portions of the Software.
13  *
14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20  * DEALINGS IN THE SOFTWARE.
21  */
22 
23 package nu.validator.htmlparser.impl;
24 
25 import java.util.Arrays;
26 import java.util.Collections;
27 import java.util.LinkedList;
28 import java.util.List;
29 
30 import nu.validator.htmlparser.annotation.Inline;
31 import nu.validator.htmlparser.annotation.Local;
32 import nu.validator.htmlparser.annotation.NoLength;
33 import nu.validator.htmlparser.annotation.NsUri;
34 import nu.validator.htmlparser.annotation.Prefix;
35 import nu.validator.htmlparser.annotation.QName;
36 import nu.validator.htmlparser.annotation.Unsigned;
37 import nu.validator.htmlparser.common.Interner;
38 
39 public final class AttributeName
40 // Uncomment to regenerate
41 // implements Comparable<AttributeName>
42 {
43     // [NOCPP[
44 
45     public static final int NCNAME_HTML = 1;
46 
47     public static final int NCNAME_FOREIGN = (1 << 1) | (1 << 2);
48 
49     public static final int NCNAME_LANG = (1 << 3);
50 
51     public static final int IS_XMLNS = (1 << 4);
52 
53     public static final int CASE_FOLDED = (1 << 5);
54 
55     public static final int BOOLEAN = (1 << 6);
56 
57     // ]NOCPP]
58 
59     /**
60      * An array representing no namespace regardless of namespace mode (HTML,
61      * SVG, MathML, lang-mapping HTML) used.
62      */
63     static final @NoLength @NsUri String[] ALL_NO_NS = { "", "", "",
64     // [NOCPP[
65             ""
66     // ]NOCPP]
67     };
68 
69     /**
70      * An array that has no namespace for the HTML mode but the XMLNS namespace
71      * for the SVG and MathML modes.
72      */
73     private static final @NoLength @NsUri String[] XMLNS_NS = { "",
74             "http://www.w3.org/2000/xmlns/", "http://www.w3.org/2000/xmlns/",
75             // [NOCPP[
76             ""
77     // ]NOCPP]
78     };
79 
80     /**
81      * An array that has no namespace for the HTML mode but the XML namespace
82      * for the SVG and MathML modes.
83      */
84     private static final @NoLength @NsUri String[] XML_NS = { "",
85             "http://www.w3.org/XML/1998/namespace",
86             "http://www.w3.org/XML/1998/namespace",
87             // [NOCPP[
88             ""
89     // ]NOCPP]
90     };
91 
92     /**
93      * An array that has no namespace for the HTML mode but the XLink namespace
94      * for the SVG and MathML modes.
95      */
96     private static final @NoLength @NsUri String[] XLINK_NS = { "",
97             "http://www.w3.org/1999/xlink", "http://www.w3.org/1999/xlink",
98             // [NOCPP[
99             ""
100     // ]NOCPP]
101     };
102 
103     // [NOCPP[
104     /**
105      * An array that has no namespace for the HTML, SVG and MathML modes but has
106      * the XML namespace for the lang-mapping HTML mode.
107      */
108     private static final @NoLength @NsUri String[] LANG_NS = { "", "", "",
109             "http://www.w3.org/XML/1998/namespace" };
110 
111     // ]NOCPP]
112 
113     /**
114      * An array for no prefixes in any mode.
115      */
116     static final @NoLength @Prefix String[] ALL_NO_PREFIX = { null, null, null,
117     // [NOCPP[
118             null
119     // ]NOCPP]
120     };
121 
122     /**
123      * An array for no prefixe in the HTML mode and the <code>xmlns</code>
124      * prefix in the SVG and MathML modes.
125      */
126     private static final @NoLength @Prefix String[] XMLNS_PREFIX = { null,
127             "xmlns", "xmlns",
128             // [NOCPP[
129             null
130     // ]NOCPP]
131     };
132 
133     /**
134      * An array for no prefixe in the HTML mode and the <code>xlink</code>
135      * prefix in the SVG and MathML modes.
136      */
137     private static final @NoLength @Prefix String[] XLINK_PREFIX = { null,
138             "xlink", "xlink",
139             // [NOCPP[
140             null
141     // ]NOCPP]
142     };
143 
144     /**
145      * An array for no prefixe in the HTML mode and the <code>xml</code> prefix
146      * in the SVG and MathML modes.
147      */
148     private static final @NoLength @Prefix String[] XML_PREFIX = { null, "xml",
149             "xml",
150             // [NOCPP[
151             null
152     // ]NOCPP]
153     };
154 
155     // [NOCPP[
156 
157     private static final @NoLength @Prefix String[] LANG_PREFIX = { null, null,
158             null, "xml" };
159 
COMPUTE_QNAME(String[] local, String[] prefix)160     private static @QName String[] COMPUTE_QNAME(String[] local, String[] prefix) {
161         @QName String[] arr = new String[4];
162         for (int i = 0; i < arr.length; i++) {
163             if (prefix[i] == null) {
164                 arr[i] = local[i];
165             } else {
166                 arr[i] = (prefix[i] + ':' + local[i]).intern();
167             }
168         }
169         return arr;
170     }
171 
172     // ]NOCPP]
173 
174     /**
175      * An initialization helper for having a one name in the SVG mode and
176      * another name in the other modes.
177      *
178      * @param name
179      *            the name for the non-SVG modes
180      * @param camel
181      *            the name for the SVG mode
182      * @return the initialized name array
183      */
SVG_DIFFERENT(@ocal String name, @Local String camel)184     private static @NoLength @Local String[] SVG_DIFFERENT(@Local String name,
185             @Local String camel) {
186         @NoLength @Local String[] arr = new String[4];
187         arr[0] = name;
188         arr[1] = name;
189         arr[2] = camel;
190         // [NOCPP[
191         arr[3] = name;
192         // ]NOCPP]
193         return arr;
194     }
195 
196     /**
197      * An initialization helper for having a one name in the MathML mode and
198      * another name in the other modes.
199      *
200      * @param name
201      *            the name for the non-MathML modes
202      * @param camel
203      *            the name for the MathML mode
204      * @return the initialized name array
205      */
MATH_DIFFERENT(@ocal String name, @Local String camel)206     private static @NoLength @Local String[] MATH_DIFFERENT(@Local String name,
207             @Local String camel) {
208         @NoLength @Local String[] arr = new String[4];
209         arr[0] = name;
210         arr[1] = camel;
211         arr[2] = name;
212         // [NOCPP[
213         arr[3] = name;
214         // ]NOCPP]
215         return arr;
216     }
217 
218     /**
219      * An initialization helper for having a different local name in the HTML
220      * mode and the SVG and MathML modes.
221      *
222      * @param name
223      *            the name for the HTML mode
224      * @param suffix
225      *            the name for the SVG and MathML modes
226      * @return the initialized name array
227      */
COLONIFIED_LOCAL( @ocal String name, @Local String suffix)228     private static @NoLength @Local String[] COLONIFIED_LOCAL(
229             @Local String name, @Local String suffix) {
230         @NoLength @Local String[] arr = new String[4];
231         arr[0] = name;
232         arr[1] = suffix;
233         arr[2] = suffix;
234         // [NOCPP[
235         arr[3] = name;
236         // ]NOCPP]
237         return arr;
238     }
239 
240     /**
241      * An initialization helper for having the same local name in all modes.
242      *
243      * @param name
244      *            the name
245      * @return the initialized name array
246      */
SAME_LOCAL(@ocal String name)247     static @NoLength @Local String[] SAME_LOCAL(@Local String name) {
248         @NoLength @Local String[] arr = new String[4];
249         arr[0] = name;
250         arr[1] = name;
251         arr[2] = name;
252         // [NOCPP[
253         arr[3] = name;
254         // ]NOCPP]
255         return arr;
256     }
257 
levelOrderBinarySearch(int[] data, int key)258     @Inline static int levelOrderBinarySearch(int[] data, int key) {
259         int n = data.length;
260         int i = 0;
261 
262         while (i < n) {
263             int val = data[i];
264             if (val < key) {
265                 i = 2 * i + 2;
266             } else if (val > key) {
267                 i = 2 * i + 1;
268             } else {
269                 return i;
270             }
271         }
272 
273         return -1;
274     }
275 
276     /**
277      * Returns an attribute name by buffer.
278      *
279      * <p>
280      * C++ ownership: The return value is either released by the caller if the
281      * attribute is a duplicate or the ownership is transferred to
282      * HtmlAttributes and released upon clearing or destroying that object.
283      *
284      * @param buf
285      *            the buffer
286      * @param offset
287      *            ignored
288      * @param length
289      *            length of data
290      * @param checkNcName
291      *            whether to check ncnameness
292      * @return an <code>AttributeName</code> corresponding to the argument data
293      */
nameByBuffer(@oLength char[] buf, int length, Interner interner)294     @Inline static AttributeName nameByBuffer(@NoLength char[] buf,
295             int length, Interner interner) {
296         // XXX deal with offset
297         @Unsigned int hash = AttributeName.bufToHash(buf, length);
298         int[] hashes;
299         hashes = AttributeName.ATTRIBUTE_HASHES;
300         int index = levelOrderBinarySearch(hashes, hash);
301         if (index < 0) {
302             return null;
303         }
304         AttributeName attributeName = AttributeName.ATTRIBUTE_NAMES[index];
305         @Local String name = attributeName.getLocal(0);
306         if (!Portability.localEqualsBuffer(name, buf, length)) {
307             return null;
308         }
309         return attributeName;
310     }
311 
312     /**
313      * This method has to return a unique positive integer for each well-known
314      * lower-cased attribute name.
315      *
316      * @param buf
317      * @param len
318      * @return
319      */
bufToHash(@oLength char[] buf, int length)320     @Inline private static @Unsigned int bufToHash(@NoLength char[] buf, int length) {
321         @Unsigned int len = length;
322         @Unsigned int first = buf[0];
323         first <<= 19;
324         @Unsigned int second = 1 << 23;
325         @Unsigned int third = 0;
326         @Unsigned int fourth = 0;
327         @Unsigned int fifth = 0;
328         @Unsigned int sixth = 0;
329         if (length >= 4) {
330             second = buf[length - 4];
331             second <<= 4;
332             third = buf[1];
333             third <<= 9;
334             fourth = buf[length - 2];
335             fourth <<= 14;
336             fifth = buf[3];
337             fifth <<= 24;
338             sixth = buf[length - 1];
339             sixth <<= 11;
340         } else if (length == 3) {
341             second = buf[1];
342             second <<= 4;
343             third = buf[2];
344             third <<= 9;
345         } else if (length == 2) {
346             second = buf[1];
347             second <<= 24;
348         }
349         return len + first + second + third + fourth + fifth + sixth;
350     }
351 
352     /**
353      * The mode value for HTML.
354      */
355     public static final int HTML = 0;
356 
357     /**
358      * The mode value for MathML.
359      */
360     public static final int MATHML = 1;
361 
362     /**
363      * The mode value for SVG.
364      */
365     public static final int SVG = 2;
366 
367     // [NOCPP[
368 
369     /**
370      * The mode value for lang-mapping HTML.
371      */
372     public static final int HTML_LANG = 3;
373 
374     // ]NOCPP]
375 
376     /**
377      * The namespaces indexable by mode.
378      */
379     private final @NsUri @NoLength String[] uri;
380 
381     /**
382      * The local names indexable by mode.
383      */
384     private final @Local @NoLength String[] local;
385 
386     /**
387      * The prefixes indexably by mode.
388      */
389     private final @Prefix @NoLength String[] prefix;
390 
391     // CPPONLY: private final boolean custom;
392 
393     // [NOCPP[
394 
395     private final int flags;
396 
397     /**
398      * The qnames indexable by mode.
399      */
400     private final @QName @NoLength String[] qName;
401 
402     // ]NOCPP]
403 
404     /**
405      * The startup-time constructor.
406      *
407      * @param uri
408      *            the namespace
409      * @param local
410      *            the local name
411      * @param prefix
412      *            the prefix
413      * @param ncname
414      *            the ncnameness
415      * @param xmlns
416      *            whether this is an xmlns attribute
417      */
AttributeName(@sUri @oLength String[] uri, @Local @NoLength String[] local, @Prefix @NoLength String[] prefix , int flags )418     private AttributeName(@NsUri @NoLength String[] uri,
419             @Local @NoLength String[] local, @Prefix @NoLength String[] prefix
420             // [NOCPP[
421             , int flags
422     // ]NOCPP]
423     ) {
424         this.uri = uri;
425         this.local = local;
426         this.prefix = prefix;
427         // [NOCPP[
428         this.qName = COMPUTE_QNAME(local, prefix);
429         this.flags = flags;
430         // ]NOCPP]
431         // CPPONLY: this.custom = false;
432     }
433 
434     // CPPONLY: public AttributeName() {
435     // CPPONLY:     this.uri = AttributeName.ALL_NO_NS;
436     // CPPONLY:     this.local = AttributeName.SAME_LOCAL(null);
437     // CPPONLY:     this.prefix = ALL_NO_PREFIX;
438     // CPPONLY:     this.custom = true;
439     // CPPONLY: }
440     // CPPONLY:
441     // CPPONLY: @Inline public boolean isInterned() {
442     // CPPONLY:     return !custom;
443     // CPPONLY: }
444     // CPPONLY:
445     // CPPONLY: @Inline public void setNameForNonInterned(@Local String name) {
446     // CPPONLY:     assert custom;
447     // CPPONLY:     local[0] = name;
448     // CPPONLY:     local[1] = name;
449     // CPPONLY:     local[2] = name;
450     // CPPONLY: }
451 
452     /**
453      * Creates an <code>AttributeName</code> for a local name.
454      *
455      * @param name
456      *            the name
457      * @param checkNcName
458      *            whether to check ncnameness
459      * @return an <code>AttributeName</code>
460      */
createAttributeName(@ocal String name , boolean checkNcName )461     static AttributeName createAttributeName(@Local String name
462     // [NOCPP[
463             , boolean checkNcName
464     // ]NOCPP]
465     ) {
466         // [NOCPP[
467         int flags = NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG;
468         if (name.startsWith("xmlns:")) {
469             flags = IS_XMLNS;
470         } else if (checkNcName && !NCName.isNCName(name)) {
471             flags = 0;
472         }
473         // ]NOCPP]
474         return new AttributeName(AttributeName.ALL_NO_NS,
475                 AttributeName.SAME_LOCAL(name), ALL_NO_PREFIX, flags);
476     }
477 
478     /**
479      * The C++ destructor.
480      */
destructor()481     @SuppressWarnings("unused") private void destructor() {
482         Portability.deleteArray(local);
483     }
484 
485     // [NOCPP[
486     /**
487      * Creator for use when the XML violation policy requires an attribute name
488      * to be changed.
489      *
490      * @param name
491      *            the name of the attribute to create
492      */
create(@ocal String name)493     static AttributeName create(@Local String name) {
494         return new AttributeName(AttributeName.ALL_NO_NS,
495                 AttributeName.SAME_LOCAL(name), ALL_NO_PREFIX,
496                 NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
497     }
498 
499     /**
500      * Queries whether this name is an XML 1.0 4th ed. NCName.
501      *
502      * @param mode
503      *            the SVG/MathML/HTML mode
504      * @return <code>true</code> if this is an NCName in the given mode
505      */
isNcName(int mode)506     public boolean isNcName(int mode) {
507         return (flags & (1 << mode)) != 0;
508     }
509 
510     /**
511      * Queries whether this is an <code>xmlns</code> attribute.
512      *
513      * @return <code>true</code> if this is an <code>xmlns</code> attribute
514      */
isXmlns()515     public boolean isXmlns() {
516         return (flags & IS_XMLNS) != 0;
517     }
518 
519     /**
520      * Queries whether this attribute has a case-folded value in the HTML4 mode
521      * of the parser.
522      *
523      * @return <code>true</code> if the value is case-folded
524      */
isCaseFolded()525     boolean isCaseFolded() {
526         return (flags & CASE_FOLDED) != 0;
527     }
528 
isBoolean()529     boolean isBoolean() {
530         return (flags & BOOLEAN) != 0;
531     }
532 
getQName(int mode)533     public @QName String getQName(int mode) {
534         return qName[mode];
535     }
536 
537     // ]NOCPP]
538 
getUri(int mode)539     public @NsUri String getUri(int mode) {
540         return uri[mode];
541     }
542 
getLocal(int mode)543     public @Local String getLocal(int mode) {
544         return local[mode];
545     }
546 
getPrefix(int mode)547     public @Prefix String getPrefix(int mode) {
548         return prefix[mode];
549     }
550 
equalsAnother(AttributeName another)551     boolean equalsAnother(AttributeName another) {
552         return this.getLocal(AttributeName.HTML) == another.getLocal(AttributeName.HTML);
553     }
554 
555     // START CODE ONLY USED FOR GENERATING CODE uncomment to regenerate
556 
557 //    /**
558 //     * @see java.lang.Object#toString()
559 //     */
560 //    @Override public String toString() {
561 //        return "(" + formatNs() + ", " + formatLocal() + ", " + formatPrefix()
562 //                + ", " + formatFlags() + ")";
563 //    }
564 //
565 //    private String formatFlags() {
566 //        StringBuilder builder = new StringBuilder();
567 //        if ((flags & NCNAME_HTML) != 0) {
568 //            if (builder.length() != 0) {
569 //                builder.append(" | ");
570 //            }
571 //            builder.append("NCNAME_HTML");
572 //        }
573 //        if ((flags & NCNAME_FOREIGN) != 0) {
574 //            if (builder.length() != 0) {
575 //                builder.append(" | ");
576 //            }
577 //            builder.append("NCNAME_FOREIGN");
578 //        }
579 //        if ((flags & NCNAME_LANG) != 0) {
580 //            if (builder.length() != 0) {
581 //                builder.append(" | ");
582 //            }
583 //            builder.append("NCNAME_LANG");
584 //        }
585 //        if (isXmlns()) {
586 //            if (builder.length() != 0) {
587 //                builder.append(" | ");
588 //            }
589 //            builder.append("IS_XMLNS");
590 //        }
591 //        if (isCaseFolded()) {
592 //            if (builder.length() != 0) {
593 //                builder.append(" | ");
594 //            }
595 //            builder.append("CASE_FOLDED");
596 //        }
597 //        if (isBoolean()) {
598 //            if (builder.length() != 0) {
599 //                builder.append(" | ");
600 //            }
601 //            builder.append("BOOLEAN");
602 //        }
603 //        if (builder.length() == 0) {
604 //            return "0";
605 //        }
606 //        return builder.toString();
607 //    }
608 //
609 //    public int compareTo(AttributeName other) {
610 //        int thisHash = this.hash();
611 //        int otherHash = other.hash();
612 //        if (thisHash < otherHash) {
613 //            return -1;
614 //        } else if (thisHash == otherHash) {
615 //            return 0;
616 //        } else {
617 //            return 1;
618 //        }
619 //    }
620 //
621 //    private String formatPrefix() {
622 //        if (prefix[0] == null && prefix[1] == null && prefix[2] == null
623 //                && prefix[3] == null) {
624 //            return "ALL_NO_PREFIX";
625 //        } else if (prefix[0] == null && prefix[1] == prefix[2]
626 //                && prefix[3] == null) {
627 //            if ("xmlns".equals(prefix[1])) {
628 //                return "XMLNS_PREFIX";
629 //            } else if ("xml".equals(prefix[1])) {
630 //                return "XML_PREFIX";
631 //            } else if ("xlink".equals(prefix[1])) {
632 //                return "XLINK_PREFIX";
633 //            } else {
634 //                throw new IllegalStateException();
635 //            }
636 //        } else if (prefix[0] == null && prefix[1] == null && prefix[2] == null
637 //                && prefix[3] == "xml") {
638 //            return "LANG_PREFIX";
639 //        } else {
640 //            throw new IllegalStateException();
641 //        }
642 //    }
643 //
644 //    private String formatLocal() {
645 //        if (local[0] == local[1] && local[0] == local[3]
646 //                && local[0] != local[2]) {
647 //            return "SVG_DIFFERENT(\"" + local[0] + "\", \"" + local[2] + "\")";
648 //        }
649 //        if (local[0] == local[2] && local[0] == local[3]
650 //                && local[0] != local[1]) {
651 //            return "MATH_DIFFERENT(\"" + local[0] + "\", \"" + local[1] + "\")";
652 //        }
653 //        if (local[0] == local[3] && local[1] == local[2]
654 //                && local[0] != local[1]) {
655 //            return "COLONIFIED_LOCAL(\"" + local[0] + "\", \"" + local[1]
656 //                    + "\")";
657 //        }
658 //        for (int i = 1; i < local.length; i++) {
659 //            if (local[0] != local[i]) {
660 //                throw new IllegalStateException();
661 //            }
662 //        }
663 //        return "SAME_LOCAL(\"" + local[0] + "\")";
664 //    }
665 //
666 //    private String formatNs() {
667 //        if (uri[0] == "" && uri[1] == "" && uri[2] == "" && uri[3] == "") {
668 //            return "ALL_NO_NS";
669 //        } else if (uri[0] == "" && uri[1] == uri[2] && uri[3] == "") {
670 //            if ("http://www.w3.org/2000/xmlns/".equals(uri[1])) {
671 //                return "XMLNS_NS";
672 //            } else if ("http://www.w3.org/XML/1998/namespace".equals(uri[1])) {
673 //                return "XML_NS";
674 //            } else if ("http://www.w3.org/1999/xlink".equals(uri[1])) {
675 //                return "XLINK_NS";
676 //            } else {
677 //                throw new IllegalStateException();
678 //            }
679 //        } else if (uri[0] == "" && uri[1] == "" && uri[2] == ""
680 //                && uri[3] == "http://www.w3.org/XML/1998/namespace") {
681 //            return "LANG_NS";
682 //        } else {
683 //            throw new IllegalStateException();
684 //        }
685 //    }
686 //
687 //    private String constName() {
688 //        String name = getLocal(HTML);
689 //        char[] buf = new char[name.length()];
690 //        for (int i = 0; i < name.length(); i++) {
691 //            char c = name.charAt(i);
692 //            if (c == '-' || c == ':') {
693 //                buf[i] = '_';
694 //            } else if (c >= 'a' && c <= 'z') {
695 //                buf[i] = (char) (c - 0x20);
696 //            } else {
697 //                buf[i] = c;
698 //            }
699 //        }
700 //        return new String(buf);
701 //    }
702 //
703 //    private int hash() {
704 //        String name = getLocal(HTML);
705 //        return bufToHash(name.toCharArray(), name.length());
706 //    }
707 //
708 //    private static void fillLevelOrderArray(List<AttributeName> sorted, int depth,
709 //                                            int rootIdx, AttributeName[] levelOrder) {
710 //        if (rootIdx >= levelOrder.length) {
711 //            return;
712 //        }
713 //
714 //        if (depth > 0) {
715 //            fillLevelOrderArray(sorted, depth - 1, rootIdx * 2 + 1, levelOrder);
716 //        }
717 //
718 //        if (!sorted.isEmpty()) {
719 //            levelOrder[rootIdx] = sorted.remove(0);
720 //        }
721 //
722 //        if (depth > 0) {
723 //            fillLevelOrderArray(sorted, depth - 1, rootIdx * 2 + 2, levelOrder);
724 //        }
725 //    }
726 //
727 //    /**
728 //     * Regenerate self
729 //     *
730 //     * @param args
731 //     */
732 //    public static void main(String[] args) {
733 //        Arrays.sort(ATTRIBUTE_NAMES);
734 //        for (int i = 0; i < ATTRIBUTE_NAMES.length; i++) {
735 //            int hash = ATTRIBUTE_NAMES[i].hash();
736 //            if (hash < 0) {
737 //                System.err.println("Negative hash: " + ATTRIBUTE_NAMES[i].local[0]);
738 //                return;
739 //            }
740 //            for (int j = i + 1; j < ATTRIBUTE_NAMES.length; j++) {
741 //                if (hash == ATTRIBUTE_NAMES[j].hash()) {
742 //                    System.err.println(
743 //                            "Hash collision: " + ATTRIBUTE_NAMES[i].local[0] + ", "
744 //                                    + ATTRIBUTE_NAMES[j].local[0]);
745 //                    return;
746 //                }
747 //            }
748 //        }
749 //        for (int i = 0; i < ATTRIBUTE_NAMES.length; i++) {
750 //            AttributeName att = ATTRIBUTE_NAMES[i];
751 //            System.out.println("public static final AttributeName "
752 //                    + att.constName() + " = new AttributeName" + att.toString()
753 //                    + ";");
754 //        }
755 //
756 //        LinkedList<AttributeName> sortedNames = new LinkedList<AttributeName>();
757 //        Collections.addAll(sortedNames, ATTRIBUTE_NAMES);
758 //        AttributeName[] levelOrder = new AttributeName[ATTRIBUTE_NAMES.length];
759 //        int bstDepth = (int) Math.ceil(Math.log(ATTRIBUTE_NAMES.length) / Math.log(2));
760 //        fillLevelOrderArray(sortedNames, bstDepth, 0, levelOrder);
761 //
762 //        System.out.println("private final static @NoLength AttributeName[] ATTRIBUTE_NAMES = {");
763 //        for (int i = 0; i < levelOrder.length; i++) {
764 //            AttributeName att = levelOrder[i];
765 //            System.out.println(att.constName() + ",");
766 //        }
767 //        System.out.println("};");
768 //        System.out.println("private final static int[] ATTRIBUTE_HASHES = {");
769 //        for (int i = 0; i < levelOrder.length; i++) {
770 //            AttributeName att = levelOrder[i];
771 //            System.out.println(Integer.toString(att.hash()) + ",");
772 //        }
773 //        System.out.println("};");
774 //    }
775 
776     // START GENERATED CODE
777     public static final AttributeName ALT = new AttributeName(ALL_NO_NS, SAME_LOCAL("alt"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
778     public static final AttributeName DIR = new AttributeName(ALL_NO_NS, SAME_LOCAL("dir"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED);
779     public static final AttributeName DUR = new AttributeName(ALL_NO_NS, SAME_LOCAL("dur"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
780     public static final AttributeName END = new AttributeName(ALL_NO_NS, SAME_LOCAL("end"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
781     public static final AttributeName FOR = new AttributeName(ALL_NO_NS, SAME_LOCAL("for"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
782     public static final AttributeName IN2 = new AttributeName(ALL_NO_NS, SAME_LOCAL("in2"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
783     public static final AttributeName LOW = new AttributeName(ALL_NO_NS, SAME_LOCAL("low"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
784     public static final AttributeName MIN = new AttributeName(ALL_NO_NS, SAME_LOCAL("min"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
785     public static final AttributeName MAX = new AttributeName(ALL_NO_NS, SAME_LOCAL("max"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
786     public static final AttributeName REL = new AttributeName(ALL_NO_NS, SAME_LOCAL("rel"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
787     public static final AttributeName REV = new AttributeName(ALL_NO_NS, SAME_LOCAL("rev"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
788     public static final AttributeName SRC = new AttributeName(ALL_NO_NS, SAME_LOCAL("src"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
789     public static final AttributeName D = new AttributeName(ALL_NO_NS, SAME_LOCAL("d"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
790     public static final AttributeName R = new AttributeName(ALL_NO_NS, SAME_LOCAL("r"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
791     public static final AttributeName X = new AttributeName(ALL_NO_NS, SAME_LOCAL("x"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
792     public static final AttributeName Y = new AttributeName(ALL_NO_NS, SAME_LOCAL("y"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
793     public static final AttributeName Z = new AttributeName(ALL_NO_NS, SAME_LOCAL("z"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
794     public static final AttributeName K1 = new AttributeName(ALL_NO_NS, SAME_LOCAL("k1"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
795     public static final AttributeName X1 = new AttributeName(ALL_NO_NS, SAME_LOCAL("x1"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
796     public static final AttributeName Y1 = new AttributeName(ALL_NO_NS, SAME_LOCAL("y1"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
797     public static final AttributeName K2 = new AttributeName(ALL_NO_NS, SAME_LOCAL("k2"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
798     public static final AttributeName X2 = new AttributeName(ALL_NO_NS, SAME_LOCAL("x2"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
799     public static final AttributeName Y2 = new AttributeName(ALL_NO_NS, SAME_LOCAL("y2"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
800     public static final AttributeName K3 = new AttributeName(ALL_NO_NS, SAME_LOCAL("k3"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
801     public static final AttributeName K4 = new AttributeName(ALL_NO_NS, SAME_LOCAL("k4"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
802     public static final AttributeName XML_SPACE = new AttributeName(XML_NS, COLONIFIED_LOCAL("xml:space", "space"), XML_PREFIX, NCNAME_FOREIGN);
803     public static final AttributeName XML_LANG = new AttributeName(XML_NS, COLONIFIED_LOCAL("xml:lang", "lang"), XML_PREFIX, NCNAME_FOREIGN);
804     public static final AttributeName ARIA_GRAB = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-grab"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
805     public static final AttributeName ARIA_VALUEMAX = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-valuemax"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
806     public static final AttributeName ARIA_LABELLEDBY = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-labelledby"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
807     public static final AttributeName ARIA_DESCRIBEDBY = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-describedby"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
808     public static final AttributeName ARIA_DISABLED = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-disabled"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
809     public static final AttributeName ARIA_CHECKED = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-checked"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
810     public static final AttributeName ARIA_SELECTED = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-selected"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
811     public static final AttributeName ARIA_DROPEFFECT = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-dropeffect"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
812     public static final AttributeName ARIA_REQUIRED = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-required"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
813     public static final AttributeName ARIA_EXPANDED = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-expanded"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
814     public static final AttributeName ARIA_PRESSED = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-pressed"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
815     public static final AttributeName ARIA_LEVEL = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-level"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
816     public static final AttributeName ARIA_CHANNEL = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-channel"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
817     public static final AttributeName ARIA_HIDDEN = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-hidden"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
818     public static final AttributeName ARIA_SECRET = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-secret"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
819     public static final AttributeName ARIA_POSINSET = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-posinset"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
820     public static final AttributeName ARIA_ATOMIC = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-atomic"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
821     public static final AttributeName ARIA_INVALID = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-invalid"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
822     public static final AttributeName ARIA_TEMPLATEID = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-templateid"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
823     public static final AttributeName ARIA_VALUEMIN = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-valuemin"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
824     public static final AttributeName ARIA_MULTISELECTABLE = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-multiselectable"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
825     public static final AttributeName ARIA_CONTROLS = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-controls"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
826     public static final AttributeName ARIA_MULTILINE = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-multiline"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
827     public static final AttributeName ARIA_READONLY = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-readonly"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
828     public static final AttributeName ARIA_OWNS = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-owns"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
829     public static final AttributeName ARIA_ACTIVEDESCENDANT = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-activedescendant"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
830     public static final AttributeName ARIA_RELEVANT = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-relevant"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
831     public static final AttributeName ARIA_DATATYPE = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-datatype"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
832     public static final AttributeName ARIA_VALUENOW = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-valuenow"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
833     public static final AttributeName ARIA_SORT = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-sort"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
834     public static final AttributeName ARIA_AUTOCOMPLETE = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-autocomplete"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
835     public static final AttributeName ARIA_FLOWTO = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-flowto"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
836     public static final AttributeName ARIA_BUSY = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-busy"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
837     public static final AttributeName ARIA_LIVE = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-live"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
838     public static final AttributeName ARIA_HASPOPUP = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-haspopup"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
839     public static final AttributeName ARIA_SETSIZE = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-setsize"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
840     public static final AttributeName CLEAR = new AttributeName(ALL_NO_NS, SAME_LOCAL("clear"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED);
841     public static final AttributeName DISABLED = new AttributeName(ALL_NO_NS, SAME_LOCAL("disabled"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED | BOOLEAN);
842     public static final AttributeName DEFAULT = new AttributeName(ALL_NO_NS, SAME_LOCAL("default"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED | BOOLEAN);
843     public static final AttributeName DATA = new AttributeName(ALL_NO_NS, SAME_LOCAL("data"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
844     public static final AttributeName EQUALCOLUMNS = new AttributeName(ALL_NO_NS, SAME_LOCAL("equalcolumns"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
845     public static final AttributeName EQUALROWS = new AttributeName(ALL_NO_NS, SAME_LOCAL("equalrows"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
846     public static final AttributeName HSPACE = new AttributeName(ALL_NO_NS, SAME_LOCAL("hspace"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
847     public static final AttributeName ISMAP = new AttributeName(ALL_NO_NS, SAME_LOCAL("ismap"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED | BOOLEAN);
848     public static final AttributeName LOCAL = new AttributeName(ALL_NO_NS, SAME_LOCAL("local"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
849     public static final AttributeName LSPACE = new AttributeName(ALL_NO_NS, SAME_LOCAL("lspace"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
850     public static final AttributeName MOVABLELIMITS = new AttributeName(ALL_NO_NS, SAME_LOCAL("movablelimits"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
851     public static final AttributeName NOTATION = new AttributeName(ALL_NO_NS, SAME_LOCAL("notation"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
852     public static final AttributeName ONDATAAVAILABLE = new AttributeName(ALL_NO_NS, SAME_LOCAL("ondataavailable"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
853     public static final AttributeName ONPASTE = new AttributeName(ALL_NO_NS, SAME_LOCAL("onpaste"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
854     public static final AttributeName RSPACE = new AttributeName(ALL_NO_NS, SAME_LOCAL("rspace"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
855     public static final AttributeName ROWALIGN = new AttributeName(ALL_NO_NS, SAME_LOCAL("rowalign"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
856     public static final AttributeName ROTATE = new AttributeName(ALL_NO_NS, SAME_LOCAL("rotate"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
857     public static final AttributeName SEPARATOR = new AttributeName(ALL_NO_NS, SAME_LOCAL("separator"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
858     public static final AttributeName SEPARATORS = new AttributeName(ALL_NO_NS, SAME_LOCAL("separators"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
859     public static final AttributeName VSPACE = new AttributeName(ALL_NO_NS, SAME_LOCAL("vspace"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
860     public static final AttributeName XCHANNELSELECTOR = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("xchannelselector", "xChannelSelector"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
861     public static final AttributeName YCHANNELSELECTOR = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("ychannelselector", "yChannelSelector"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
862     public static final AttributeName ENABLE_BACKGROUND = new AttributeName(ALL_NO_NS, SAME_LOCAL("enable-background"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
863     public static final AttributeName ONDBLCLICK = new AttributeName(ALL_NO_NS, SAME_LOCAL("ondblclick"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
864     public static final AttributeName ONABORT = new AttributeName(ALL_NO_NS, SAME_LOCAL("onabort"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
865     public static final AttributeName CALCMODE = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("calcmode", "calcMode"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
866     public static final AttributeName CHECKED = new AttributeName(ALL_NO_NS, SAME_LOCAL("checked"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED | BOOLEAN);
867     public static final AttributeName FENCE = new AttributeName(ALL_NO_NS, SAME_LOCAL("fence"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
868     public static final AttributeName ONSCROLL = new AttributeName(ALL_NO_NS, SAME_LOCAL("onscroll"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
869     public static final AttributeName ONACTIVATE = new AttributeName(ALL_NO_NS, SAME_LOCAL("onactivate"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
870     public static final AttributeName OPACITY = new AttributeName(ALL_NO_NS, SAME_LOCAL("opacity"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
871     public static final AttributeName SPACING = new AttributeName(ALL_NO_NS, SAME_LOCAL("spacing"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
872     public static final AttributeName SPECULAREXPONENT = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("specularexponent", "specularExponent"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
873     public static final AttributeName SPECULARCONSTANT = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("specularconstant", "specularConstant"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
874     public static final AttributeName BORDER = new AttributeName(ALL_NO_NS, SAME_LOCAL("border"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
875     public static final AttributeName ID = new AttributeName(ALL_NO_NS, SAME_LOCAL("id"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
876     public static final AttributeName GRADIENTTRANSFORM = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("gradienttransform", "gradientTransform"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
877     public static final AttributeName GRADIENTUNITS = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("gradientunits", "gradientUnits"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
878     public static final AttributeName HIDDEN = new AttributeName(ALL_NO_NS, SAME_LOCAL("hidden"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
879     public static final AttributeName HEADERS = new AttributeName(ALL_NO_NS, SAME_LOCAL("headers"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
880     public static final AttributeName LOADING = new AttributeName(ALL_NO_NS, SAME_LOCAL("loading"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
881     public static final AttributeName READONLY = new AttributeName(ALL_NO_NS, SAME_LOCAL("readonly"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED | BOOLEAN);
882     public static final AttributeName RENDERING_INTENT = new AttributeName(ALL_NO_NS, SAME_LOCAL("rendering-intent"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
883     public static final AttributeName SEED = new AttributeName(ALL_NO_NS, SAME_LOCAL("seed"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
884     public static final AttributeName SRCDOC = new AttributeName(ALL_NO_NS, SAME_LOCAL("srcdoc"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
885     public static final AttributeName STDDEVIATION = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("stddeviation", "stdDeviation"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
886     public static final AttributeName SANDBOX = new AttributeName(ALL_NO_NS, SAME_LOCAL("sandbox"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
887     public static final AttributeName WORD_SPACING = new AttributeName(ALL_NO_NS, SAME_LOCAL("word-spacing"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
888     public static final AttributeName ACCENTUNDER = new AttributeName(ALL_NO_NS, SAME_LOCAL("accentunder"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
889     public static final AttributeName ACCEPT_CHARSET = new AttributeName(ALL_NO_NS, SAME_LOCAL("accept-charset"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
890     public static final AttributeName ACCESSKEY = new AttributeName(ALL_NO_NS, SAME_LOCAL("accesskey"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
891     public static final AttributeName ACCENT = new AttributeName(ALL_NO_NS, SAME_LOCAL("accent"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
892     public static final AttributeName ACCEPT = new AttributeName(ALL_NO_NS, SAME_LOCAL("accept"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
893     public static final AttributeName BEVELLED = new AttributeName(ALL_NO_NS, SAME_LOCAL("bevelled"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
894     public static final AttributeName BASEFREQUENCY = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("basefrequency", "baseFrequency"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
895     public static final AttributeName BASELINE_SHIFT = new AttributeName(ALL_NO_NS, SAME_LOCAL("baseline-shift"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
896     public static final AttributeName BASEPROFILE = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("baseprofile", "baseProfile"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
897     public static final AttributeName BASELINE = new AttributeName(ALL_NO_NS, SAME_LOCAL("baseline"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
898     public static final AttributeName BASE = new AttributeName(ALL_NO_NS, SAME_LOCAL("base"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
899     public static final AttributeName CODE = new AttributeName(ALL_NO_NS, SAME_LOCAL("code"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
900     public static final AttributeName CODETYPE = new AttributeName(ALL_NO_NS, SAME_LOCAL("codetype"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
901     public static final AttributeName CODEBASE = new AttributeName(ALL_NO_NS, SAME_LOCAL("codebase"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
902     public static final AttributeName CITE = new AttributeName(ALL_NO_NS, SAME_LOCAL("cite"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
903     public static final AttributeName DEFER = new AttributeName(ALL_NO_NS, SAME_LOCAL("defer"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED | BOOLEAN);
904     public static final AttributeName DATETIME = new AttributeName(ALL_NO_NS, SAME_LOCAL("datetime"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
905     public static final AttributeName DIRECTION = new AttributeName(ALL_NO_NS, SAME_LOCAL("direction"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
906     public static final AttributeName EDGEMODE = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("edgemode", "edgeMode"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
907     public static final AttributeName EDGE = new AttributeName(ALL_NO_NS, SAME_LOCAL("edge"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
908     public static final AttributeName ENTERKEYHINT = new AttributeName(ALL_NO_NS, SAME_LOCAL("enterkeyhint"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
909     public static final AttributeName FACE = new AttributeName(ALL_NO_NS, SAME_LOCAL("face"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
910     public static final AttributeName INDEX = new AttributeName(ALL_NO_NS, SAME_LOCAL("index"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
911     public static final AttributeName INTERCEPT = new AttributeName(ALL_NO_NS, SAME_LOCAL("intercept"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
912     public static final AttributeName INTEGRITY = new AttributeName(ALL_NO_NS, SAME_LOCAL("integrity"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
913     public static final AttributeName LINEBREAK = new AttributeName(ALL_NO_NS, SAME_LOCAL("linebreak"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
914     public static final AttributeName LABEL = new AttributeName(ALL_NO_NS, SAME_LOCAL("label"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
915     public static final AttributeName LINETHICKNESS = new AttributeName(ALL_NO_NS, SAME_LOCAL("linethickness"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
916     public static final AttributeName MODE = new AttributeName(ALL_NO_NS, SAME_LOCAL("mode"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
917     public static final AttributeName NAME = new AttributeName(ALL_NO_NS, SAME_LOCAL("name"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
918     public static final AttributeName NORESIZE = new AttributeName(ALL_NO_NS, SAME_LOCAL("noresize"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED | BOOLEAN);
919     public static final AttributeName ONBEFOREUNLOAD = new AttributeName(ALL_NO_NS, SAME_LOCAL("onbeforeunload"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
920     public static final AttributeName ONREPEAT = new AttributeName(ALL_NO_NS, SAME_LOCAL("onrepeat"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
921     public static final AttributeName OBJECT = new AttributeName(ALL_NO_NS, SAME_LOCAL("object"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
922     public static final AttributeName ONSELECT = new AttributeName(ALL_NO_NS, SAME_LOCAL("onselect"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
923     public static final AttributeName ORDER = new AttributeName(ALL_NO_NS, SAME_LOCAL("order"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
924     public static final AttributeName OTHER = new AttributeName(ALL_NO_NS, SAME_LOCAL("other"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
925     public static final AttributeName ONRESET = new AttributeName(ALL_NO_NS, SAME_LOCAL("onreset"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
926     public static final AttributeName ONREADYSTATECHANGE = new AttributeName(ALL_NO_NS, SAME_LOCAL("onreadystatechange"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
927     public static final AttributeName ONMESSAGE = new AttributeName(ALL_NO_NS, SAME_LOCAL("onmessage"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
928     public static final AttributeName ONBEGIN = new AttributeName(ALL_NO_NS, SAME_LOCAL("onbegin"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
929     public static final AttributeName ONBEFOREPRINT = new AttributeName(ALL_NO_NS, SAME_LOCAL("onbeforeprint"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
930     public static final AttributeName ORIENT = new AttributeName(ALL_NO_NS, SAME_LOCAL("orient"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
931     public static final AttributeName ORIENTATION = new AttributeName(ALL_NO_NS, SAME_LOCAL("orientation"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
932     public static final AttributeName ONBEFORECOPY = new AttributeName(ALL_NO_NS, SAME_LOCAL("onbeforecopy"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
933     public static final AttributeName ONSELECTSTART = new AttributeName(ALL_NO_NS, SAME_LOCAL("onselectstart"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
934     public static final AttributeName ONBEFOREPASTE = new AttributeName(ALL_NO_NS, SAME_LOCAL("onbeforepaste"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
935     public static final AttributeName ONKEYPRESS = new AttributeName(ALL_NO_NS, SAME_LOCAL("onkeypress"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
936     public static final AttributeName ONKEYUP = new AttributeName(ALL_NO_NS, SAME_LOCAL("onkeyup"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
937     public static final AttributeName ONBEFORECUT = new AttributeName(ALL_NO_NS, SAME_LOCAL("onbeforecut"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
938     public static final AttributeName ONKEYDOWN = new AttributeName(ALL_NO_NS, SAME_LOCAL("onkeydown"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
939     public static final AttributeName ONRESIZE = new AttributeName(ALL_NO_NS, SAME_LOCAL("onresize"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
940     public static final AttributeName REPEAT = new AttributeName(ALL_NO_NS, SAME_LOCAL("repeat"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
941     public static final AttributeName REFERRERPOLICY = new AttributeName(ALL_NO_NS, SAME_LOCAL("referrerpolicy"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
942     public static final AttributeName RULES = new AttributeName(ALL_NO_NS, SAME_LOCAL("rules"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED);
943     public static final AttributeName ROLE = new AttributeName(ALL_NO_NS, SAME_LOCAL("role"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
944     public static final AttributeName REPEATCOUNT = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("repeatcount", "repeatCount"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
945     public static final AttributeName REPEATDUR = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("repeatdur", "repeatDur"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
946     public static final AttributeName SELECTED = new AttributeName(ALL_NO_NS, SAME_LOCAL("selected"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED | BOOLEAN);
947     public static final AttributeName SIZES = new AttributeName(ALL_NO_NS, SAME_LOCAL("sizes"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
948     public static final AttributeName SUPERSCRIPTSHIFT = new AttributeName(ALL_NO_NS, SAME_LOCAL("superscriptshift"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
949     public static final AttributeName STRETCHY = new AttributeName(ALL_NO_NS, SAME_LOCAL("stretchy"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
950     public static final AttributeName SCHEME = new AttributeName(ALL_NO_NS, SAME_LOCAL("scheme"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
951     public static final AttributeName SPREADMETHOD = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("spreadmethod", "spreadMethod"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
952     public static final AttributeName SELECTION = new AttributeName(ALL_NO_NS, SAME_LOCAL("selection"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
953     public static final AttributeName SIZE = new AttributeName(ALL_NO_NS, SAME_LOCAL("size"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
954     public static final AttributeName TYPE = new AttributeName(ALL_NO_NS, SAME_LOCAL("type"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED);
955     public static final AttributeName DIFFUSECONSTANT = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("diffuseconstant", "diffuseConstant"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
956     public static final AttributeName HREF = new AttributeName(ALL_NO_NS, SAME_LOCAL("href"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
957     public static final AttributeName HREFLANG = new AttributeName(ALL_NO_NS, SAME_LOCAL("hreflang"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
958     public static final AttributeName ONAFTERPRINT = new AttributeName(ALL_NO_NS, SAME_LOCAL("onafterprint"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
959     public static final AttributeName PROFILE = new AttributeName(ALL_NO_NS, SAME_LOCAL("profile"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
960     public static final AttributeName SURFACESCALE = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("surfacescale", "surfaceScale"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
961     public static final AttributeName XREF = new AttributeName(ALL_NO_NS, SAME_LOCAL("xref"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
962     public static final AttributeName ALIGN = new AttributeName(ALL_NO_NS, SAME_LOCAL("align"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED);
963     public static final AttributeName ALIGNMENT_BASELINE = new AttributeName(ALL_NO_NS, SAME_LOCAL("alignment-baseline"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
964     public static final AttributeName ALIGNMENTSCOPE = new AttributeName(ALL_NO_NS, SAME_LOCAL("alignmentscope"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
965     public static final AttributeName DRAGGABLE = new AttributeName(ALL_NO_NS, SAME_LOCAL("draggable"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
966     public static final AttributeName HEIGHT = new AttributeName(ALL_NO_NS, SAME_LOCAL("height"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
967     public static final AttributeName IMAGESIZES = new AttributeName(ALL_NO_NS, SAME_LOCAL("imagesizes"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
968     public static final AttributeName IMAGESRCSET = new AttributeName(ALL_NO_NS, SAME_LOCAL("imagesrcset"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
969     public static final AttributeName IMAGE_RENDERING = new AttributeName(ALL_NO_NS, SAME_LOCAL("image-rendering"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
970     public static final AttributeName LANGUAGE = new AttributeName(ALL_NO_NS, SAME_LOCAL("language"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
971     public static final AttributeName LANG = new AttributeName(LANG_NS, SAME_LOCAL("lang"), LANG_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
972     public static final AttributeName LARGEOP = new AttributeName(ALL_NO_NS, SAME_LOCAL("largeop"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
973     public static final AttributeName LONGDESC = new AttributeName(ALL_NO_NS, SAME_LOCAL("longdesc"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
974     public static final AttributeName LENGTHADJUST = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("lengthadjust", "lengthAdjust"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
975     public static final AttributeName MARGINHEIGHT = new AttributeName(ALL_NO_NS, SAME_LOCAL("marginheight"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
976     public static final AttributeName MARGINWIDTH = new AttributeName(ALL_NO_NS, SAME_LOCAL("marginwidth"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
977     public static final AttributeName ORIGIN = new AttributeName(ALL_NO_NS, SAME_LOCAL("origin"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
978     public static final AttributeName PING = new AttributeName(ALL_NO_NS, SAME_LOCAL("ping"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
979     public static final AttributeName TARGET = new AttributeName(ALL_NO_NS, SAME_LOCAL("target"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
980     public static final AttributeName TARGETX = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("targetx", "targetX"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
981     public static final AttributeName TARGETY = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("targety", "targetY"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
982     public static final AttributeName ARCHIVE = new AttributeName(ALL_NO_NS, SAME_LOCAL("archive"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
983     public static final AttributeName HIGH = new AttributeName(ALL_NO_NS, SAME_LOCAL("high"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
984     public static final AttributeName LIGHTING_COLOR = new AttributeName(ALL_NO_NS, SAME_LOCAL("lighting-color"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
985     public static final AttributeName MATHBACKGROUND = new AttributeName(ALL_NO_NS, SAME_LOCAL("mathbackground"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
986     public static final AttributeName METHOD = new AttributeName(ALL_NO_NS, SAME_LOCAL("method"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED);
987     public static final AttributeName MATHVARIANT = new AttributeName(ALL_NO_NS, SAME_LOCAL("mathvariant"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
988     public static final AttributeName MATHCOLOR = new AttributeName(ALL_NO_NS, SAME_LOCAL("mathcolor"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
989     public static final AttributeName MATHSIZE = new AttributeName(ALL_NO_NS, SAME_LOCAL("mathsize"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
990     public static final AttributeName NOSHADE = new AttributeName(ALL_NO_NS, SAME_LOCAL("noshade"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED | BOOLEAN);
991     public static final AttributeName ONCHANGE = new AttributeName(ALL_NO_NS, SAME_LOCAL("onchange"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
992     public static final AttributeName PATHLENGTH = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("pathlength", "pathLength"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
993     public static final AttributeName PATH = new AttributeName(ALL_NO_NS, SAME_LOCAL("path"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
994     public static final AttributeName ALTIMG = new AttributeName(ALL_NO_NS, SAME_LOCAL("altimg"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
995     public static final AttributeName ACTIONTYPE = new AttributeName(ALL_NO_NS, SAME_LOCAL("actiontype"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
996     public static final AttributeName ACTION = new AttributeName(ALL_NO_NS, SAME_LOCAL("action"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
997     public static final AttributeName ACTIVE = new AttributeName(ALL_NO_NS, SAME_LOCAL("active"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED | BOOLEAN);
998     public static final AttributeName ADDITIVE = new AttributeName(ALL_NO_NS, SAME_LOCAL("additive"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
999     public static final AttributeName BEGIN = new AttributeName(ALL_NO_NS, SAME_LOCAL("begin"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1000     public static final AttributeName DOMINANT_BASELINE = new AttributeName(ALL_NO_NS, SAME_LOCAL("dominant-baseline"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1001     public static final AttributeName DIVISOR = new AttributeName(ALL_NO_NS, SAME_LOCAL("divisor"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1002     public static final AttributeName DEFINITIONURL = new AttributeName(ALL_NO_NS, MATH_DIFFERENT("definitionurl", "definitionURL"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1003     public static final AttributeName LIMITINGCONEANGLE = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("limitingconeangle", "limitingConeAngle"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1004     public static final AttributeName MEDIA = new AttributeName(ALL_NO_NS, SAME_LOCAL("media"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1005     public static final AttributeName MANIFEST = new AttributeName(ALL_NO_NS, SAME_LOCAL("manifest"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1006     public static final AttributeName ONFINISH = new AttributeName(ALL_NO_NS, SAME_LOCAL("onfinish"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1007     public static final AttributeName OPTIMUM = new AttributeName(ALL_NO_NS, SAME_LOCAL("optimum"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1008     public static final AttributeName RADIOGROUP = new AttributeName(ALL_NO_NS, SAME_LOCAL("radiogroup"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1009     public static final AttributeName RADIUS = new AttributeName(ALL_NO_NS, SAME_LOCAL("radius"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1010     public static final AttributeName SCRIPTLEVEL = new AttributeName(ALL_NO_NS, SAME_LOCAL("scriptlevel"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1011     public static final AttributeName SCRIPTSIZEMULTIPLIER = new AttributeName(ALL_NO_NS, SAME_LOCAL("scriptsizemultiplier"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1012     public static final AttributeName SCRIPTMINSIZE = new AttributeName(ALL_NO_NS, SAME_LOCAL("scriptminsize"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1013     public static final AttributeName TABINDEX = new AttributeName(ALL_NO_NS, SAME_LOCAL("tabindex"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1014     public static final AttributeName VALIGN = new AttributeName(ALL_NO_NS, SAME_LOCAL("valign"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED);
1015     public static final AttributeName VISIBILITY = new AttributeName(ALL_NO_NS, SAME_LOCAL("visibility"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1016     public static final AttributeName BACKGROUND = new AttributeName(ALL_NO_NS, SAME_LOCAL("background"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1017     public static final AttributeName LINK = new AttributeName(ALL_NO_NS, SAME_LOCAL("link"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1018     public static final AttributeName MARKER_MID = new AttributeName(ALL_NO_NS, SAME_LOCAL("marker-mid"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1019     public static final AttributeName MARKERHEIGHT = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("markerheight", "markerHeight"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1020     public static final AttributeName MARKER_END = new AttributeName(ALL_NO_NS, SAME_LOCAL("marker-end"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1021     public static final AttributeName MASK = new AttributeName(ALL_NO_NS, SAME_LOCAL("mask"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1022     public static final AttributeName MARKER_START = new AttributeName(ALL_NO_NS, SAME_LOCAL("marker-start"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1023     public static final AttributeName MARKERWIDTH = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("markerwidth", "markerWidth"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1024     public static final AttributeName MASKUNITS = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("maskunits", "maskUnits"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1025     public static final AttributeName MARKERUNITS = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("markerunits", "markerUnits"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1026     public static final AttributeName MASKCONTENTUNITS = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("maskcontentunits", "maskContentUnits"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1027     public static final AttributeName AMPLITUDE = new AttributeName(ALL_NO_NS, SAME_LOCAL("amplitude"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1028     public static final AttributeName CELLSPACING = new AttributeName(ALL_NO_NS, SAME_LOCAL("cellspacing"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1029     public static final AttributeName CELLPADDING = new AttributeName(ALL_NO_NS, SAME_LOCAL("cellpadding"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1030     public static final AttributeName DECLARE = new AttributeName(ALL_NO_NS, SAME_LOCAL("declare"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED | BOOLEAN);
1031     public static final AttributeName FILL_RULE = new AttributeName(ALL_NO_NS, SAME_LOCAL("fill-rule"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1032     public static final AttributeName FILL = new AttributeName(ALL_NO_NS, SAME_LOCAL("fill"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1033     public static final AttributeName FILL_OPACITY = new AttributeName(ALL_NO_NS, SAME_LOCAL("fill-opacity"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1034     public static final AttributeName MAXLENGTH = new AttributeName(ALL_NO_NS, SAME_LOCAL("maxlength"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1035     public static final AttributeName ONCLICK = new AttributeName(ALL_NO_NS, SAME_LOCAL("onclick"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1036     public static final AttributeName ONBLUR = new AttributeName(ALL_NO_NS, SAME_LOCAL("onblur"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1037     public static final AttributeName REPLACE = new AttributeName(ALL_NO_NS, SAME_LOCAL("replace"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED);
1038     public static final AttributeName ROWLINES = new AttributeName(ALL_NO_NS, SAME_LOCAL("rowlines"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1039     public static final AttributeName SCALE = new AttributeName(ALL_NO_NS, SAME_LOCAL("scale"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1040     public static final AttributeName STYLE = new AttributeName(ALL_NO_NS, SAME_LOCAL("style"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1041     public static final AttributeName TABLEVALUES = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("tablevalues", "tableValues"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1042     public static final AttributeName TITLE = new AttributeName(ALL_NO_NS, SAME_LOCAL("title"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1043     public static final AttributeName AZIMUTH = new AttributeName(ALL_NO_NS, SAME_LOCAL("azimuth"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1044     public static final AttributeName FORMAT = new AttributeName(ALL_NO_NS, SAME_LOCAL("format"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1045     public static final AttributeName FRAMEBORDER = new AttributeName(ALL_NO_NS, SAME_LOCAL("frameborder"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1046     public static final AttributeName FRAME = new AttributeName(ALL_NO_NS, SAME_LOCAL("frame"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED);
1047     public static final AttributeName FRAMESPACING = new AttributeName(ALL_NO_NS, SAME_LOCAL("framespacing"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1048     public static final AttributeName FROM = new AttributeName(ALL_NO_NS, SAME_LOCAL("from"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1049     public static final AttributeName FORM = new AttributeName(ALL_NO_NS, SAME_LOCAL("form"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1050     public static final AttributeName PROMPT = new AttributeName(ALL_NO_NS, SAME_LOCAL("prompt"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1051     public static final AttributeName PRIMITIVEUNITS = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("primitiveunits", "primitiveUnits"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1052     public static final AttributeName SYMMETRIC = new AttributeName(ALL_NO_NS, SAME_LOCAL("symmetric"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1053     public static final AttributeName SUMMARY = new AttributeName(ALL_NO_NS, SAME_LOCAL("summary"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1054     public static final AttributeName USEMAP = new AttributeName(ALL_NO_NS, SAME_LOCAL("usemap"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1055     public static final AttributeName ZOOMANDPAN = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("zoomandpan", "zoomAndPan"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1056     public static final AttributeName ASYNC = new AttributeName(ALL_NO_NS, SAME_LOCAL("async"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED | BOOLEAN);
1057     public static final AttributeName ALINK = new AttributeName(ALL_NO_NS, SAME_LOCAL("alink"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1058     public static final AttributeName IN = new AttributeName(ALL_NO_NS, SAME_LOCAL("in"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1059     public static final AttributeName ICON = new AttributeName(ALL_NO_NS, SAME_LOCAL("icon"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1060     public static final AttributeName KERNELMATRIX = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("kernelmatrix", "kernelMatrix"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1061     public static final AttributeName KERNING = new AttributeName(ALL_NO_NS, SAME_LOCAL("kerning"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1062     public static final AttributeName KERNELUNITLENGTH = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("kernelunitlength", "kernelUnitLength"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1063     public static final AttributeName ONUNLOAD = new AttributeName(ALL_NO_NS, SAME_LOCAL("onunload"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1064     public static final AttributeName OPEN = new AttributeName(ALL_NO_NS, SAME_LOCAL("open"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1065     public static final AttributeName ONINVALID = new AttributeName(ALL_NO_NS, SAME_LOCAL("oninvalid"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1066     public static final AttributeName ONEND = new AttributeName(ALL_NO_NS, SAME_LOCAL("onend"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1067     public static final AttributeName ONINPUT = new AttributeName(ALL_NO_NS, SAME_LOCAL("oninput"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1068     public static final AttributeName POINTER_EVENTS = new AttributeName(ALL_NO_NS, SAME_LOCAL("pointer-events"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1069     public static final AttributeName POINTS = new AttributeName(ALL_NO_NS, SAME_LOCAL("points"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1070     public static final AttributeName POINTSATX = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("pointsatx", "pointsAtX"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1071     public static final AttributeName POINTSATY = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("pointsaty", "pointsAtY"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1072     public static final AttributeName POINTSATZ = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("pointsatz", "pointsAtZ"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1073     public static final AttributeName SPAN = new AttributeName(ALL_NO_NS, SAME_LOCAL("span"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1074     public static final AttributeName STANDBY = new AttributeName(ALL_NO_NS, SAME_LOCAL("standby"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1075     public static final AttributeName TRANSFORM_ORIGIN = new AttributeName(ALL_NO_NS, SAME_LOCAL("transform-origin"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1076     public static final AttributeName TRANSFORM = new AttributeName(ALL_NO_NS, SAME_LOCAL("transform"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1077     public static final AttributeName VLINK = new AttributeName(ALL_NO_NS, SAME_LOCAL("vlink"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1078     public static final AttributeName WHEN = new AttributeName(ALL_NO_NS, SAME_LOCAL("when"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1079     public static final AttributeName XLINK_HREF = new AttributeName(XLINK_NS, COLONIFIED_LOCAL("xlink:href", "href"), XLINK_PREFIX, NCNAME_FOREIGN);
1080     public static final AttributeName XLINK_TITLE = new AttributeName(XLINK_NS, COLONIFIED_LOCAL("xlink:title", "title"), XLINK_PREFIX, NCNAME_FOREIGN);
1081     public static final AttributeName XLINK_ROLE = new AttributeName(XLINK_NS, COLONIFIED_LOCAL("xlink:role", "role"), XLINK_PREFIX, NCNAME_FOREIGN);
1082     public static final AttributeName XLINK_ARCROLE = new AttributeName(XLINK_NS, COLONIFIED_LOCAL("xlink:arcrole", "arcrole"), XLINK_PREFIX, NCNAME_FOREIGN);
1083     public static final AttributeName XMLNS_XLINK = new AttributeName(XMLNS_NS, COLONIFIED_LOCAL("xmlns:xlink", "xlink"), XMLNS_PREFIX, IS_XMLNS);
1084     public static final AttributeName XMLNS = new AttributeName(XMLNS_NS, SAME_LOCAL("xmlns"), ALL_NO_PREFIX, IS_XMLNS);
1085     public static final AttributeName XLINK_TYPE = new AttributeName(XLINK_NS, COLONIFIED_LOCAL("xlink:type", "type"), XLINK_PREFIX, NCNAME_FOREIGN);
1086     public static final AttributeName XLINK_SHOW = new AttributeName(XLINK_NS, COLONIFIED_LOCAL("xlink:show", "show"), XLINK_PREFIX, NCNAME_FOREIGN);
1087     public static final AttributeName XLINK_ACTUATE = new AttributeName(XLINK_NS, COLONIFIED_LOCAL("xlink:actuate", "actuate"), XLINK_PREFIX, NCNAME_FOREIGN);
1088     public static final AttributeName AUTOPLAY = new AttributeName(ALL_NO_NS, SAME_LOCAL("autoplay"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1089     public static final AttributeName AUTOCOMPLETE = new AttributeName(ALL_NO_NS, SAME_LOCAL("autocomplete"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED);
1090     public static final AttributeName AUTOFOCUS = new AttributeName(ALL_NO_NS, SAME_LOCAL("autofocus"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED | BOOLEAN);
1091     public static final AttributeName AUTOCAPITALIZE = new AttributeName(ALL_NO_NS, SAME_LOCAL("autocapitalize"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1092     public static final AttributeName BGCOLOR = new AttributeName(ALL_NO_NS, SAME_LOCAL("bgcolor"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1093     public static final AttributeName COLOR_PROFILE = new AttributeName(ALL_NO_NS, SAME_LOCAL("color-profile"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1094     public static final AttributeName COLOR_RENDERING = new AttributeName(ALL_NO_NS, SAME_LOCAL("color-rendering"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1095     public static final AttributeName COLOR_INTERPOLATION = new AttributeName(ALL_NO_NS, SAME_LOCAL("color-interpolation"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1096     public static final AttributeName COLOR = new AttributeName(ALL_NO_NS, SAME_LOCAL("color"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1097     public static final AttributeName COLOR_INTERPOLATION_FILTERS = new AttributeName(ALL_NO_NS, SAME_LOCAL("color-interpolation-filters"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1098     public static final AttributeName ENCODING = new AttributeName(ALL_NO_NS, SAME_LOCAL("encoding"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1099     public static final AttributeName EXPONENT = new AttributeName(ALL_NO_NS, SAME_LOCAL("exponent"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1100     public static final AttributeName FLOOD_COLOR = new AttributeName(ALL_NO_NS, SAME_LOCAL("flood-color"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1101     public static final AttributeName FLOOD_OPACITY = new AttributeName(ALL_NO_NS, SAME_LOCAL("flood-opacity"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1102     public static final AttributeName LQUOTE = new AttributeName(ALL_NO_NS, SAME_LOCAL("lquote"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1103     public static final AttributeName NUMOCTAVES = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("numoctaves", "numOctaves"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1104     public static final AttributeName NOMODULE = new AttributeName(ALL_NO_NS, SAME_LOCAL("nomodule"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED | BOOLEAN);
1105     public static final AttributeName ONLOAD = new AttributeName(ALL_NO_NS, SAME_LOCAL("onload"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1106     public static final AttributeName ONMOUSEWHEEL = new AttributeName(ALL_NO_NS, SAME_LOCAL("onmousewheel"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1107     public static final AttributeName ONMOUSEENTER = new AttributeName(ALL_NO_NS, SAME_LOCAL("onmouseenter"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1108     public static final AttributeName ONMOUSEOVER = new AttributeName(ALL_NO_NS, SAME_LOCAL("onmouseover"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1109     public static final AttributeName ONFOCUSIN = new AttributeName(ALL_NO_NS, SAME_LOCAL("onfocusin"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1110     public static final AttributeName ONCONTEXTMENU = new AttributeName(ALL_NO_NS, SAME_LOCAL("oncontextmenu"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1111     public static final AttributeName ONZOOM = new AttributeName(ALL_NO_NS, SAME_LOCAL("onzoom"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1112     public static final AttributeName ONCOPY = new AttributeName(ALL_NO_NS, SAME_LOCAL("oncopy"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1113     public static final AttributeName ONMOUSELEAVE = new AttributeName(ALL_NO_NS, SAME_LOCAL("onmouseleave"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1114     public static final AttributeName ONMOUSEMOVE = new AttributeName(ALL_NO_NS, SAME_LOCAL("onmousemove"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1115     public static final AttributeName ONMOUSEUP = new AttributeName(ALL_NO_NS, SAME_LOCAL("onmouseup"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1116     public static final AttributeName ONFOCUS = new AttributeName(ALL_NO_NS, SAME_LOCAL("onfocus"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1117     public static final AttributeName ONMOUSEOUT = new AttributeName(ALL_NO_NS, SAME_LOCAL("onmouseout"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1118     public static final AttributeName ONFOCUSOUT = new AttributeName(ALL_NO_NS, SAME_LOCAL("onfocusout"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1119     public static final AttributeName ONMOUSEDOWN = new AttributeName(ALL_NO_NS, SAME_LOCAL("onmousedown"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1120     public static final AttributeName TO = new AttributeName(ALL_NO_NS, SAME_LOCAL("to"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1121     public static final AttributeName RQUOTE = new AttributeName(ALL_NO_NS, SAME_LOCAL("rquote"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1122     public static final AttributeName STROKE_LINECAP = new AttributeName(ALL_NO_NS, SAME_LOCAL("stroke-linecap"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1123     public static final AttributeName STROKE_DASHARRAY = new AttributeName(ALL_NO_NS, SAME_LOCAL("stroke-dasharray"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1124     public static final AttributeName STROKE_DASHOFFSET = new AttributeName(ALL_NO_NS, SAME_LOCAL("stroke-dashoffset"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1125     public static final AttributeName STROKE_LINEJOIN = new AttributeName(ALL_NO_NS, SAME_LOCAL("stroke-linejoin"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1126     public static final AttributeName STROKE_MITERLIMIT = new AttributeName(ALL_NO_NS, SAME_LOCAL("stroke-miterlimit"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1127     public static final AttributeName STROKE = new AttributeName(ALL_NO_NS, SAME_LOCAL("stroke"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1128     public static final AttributeName SCROLLING = new AttributeName(ALL_NO_NS, SAME_LOCAL("scrolling"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED);
1129     public static final AttributeName STROKE_WIDTH = new AttributeName(ALL_NO_NS, SAME_LOCAL("stroke-width"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1130     public static final AttributeName STROKE_OPACITY = new AttributeName(ALL_NO_NS, SAME_LOCAL("stroke-opacity"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1131     public static final AttributeName COMPACT = new AttributeName(ALL_NO_NS, SAME_LOCAL("compact"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED | BOOLEAN);
1132     public static final AttributeName CLIP = new AttributeName(ALL_NO_NS, SAME_LOCAL("clip"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1133     public static final AttributeName CLIP_RULE = new AttributeName(ALL_NO_NS, SAME_LOCAL("clip-rule"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1134     public static final AttributeName CLIP_PATH = new AttributeName(ALL_NO_NS, SAME_LOCAL("clip-path"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1135     public static final AttributeName CLIPPATHUNITS = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("clippathunits", "clipPathUnits"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1136     public static final AttributeName DISPLAY = new AttributeName(ALL_NO_NS, SAME_LOCAL("display"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1137     public static final AttributeName DISPLAYSTYLE = new AttributeName(ALL_NO_NS, SAME_LOCAL("displaystyle"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1138     public static final AttributeName GLYPH_ORIENTATION_VERTICAL = new AttributeName(ALL_NO_NS, SAME_LOCAL("glyph-orientation-vertical"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1139     public static final AttributeName GLYPH_ORIENTATION_HORIZONTAL = new AttributeName(ALL_NO_NS, SAME_LOCAL("glyph-orientation-horizontal"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1140     public static final AttributeName GLYPHREF = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("glyphref", "glyphRef"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1141     public static final AttributeName HTTP_EQUIV = new AttributeName(ALL_NO_NS, SAME_LOCAL("http-equiv"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1142     public static final AttributeName KEYPOINTS = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("keypoints", "keyPoints"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1143     public static final AttributeName LOOP = new AttributeName(ALL_NO_NS, SAME_LOCAL("loop"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1144     public static final AttributeName PROPERTY = new AttributeName(ALL_NO_NS, SAME_LOCAL("property"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1145     public static final AttributeName SCOPED = new AttributeName(ALL_NO_NS, SAME_LOCAL("scoped"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1146     public static final AttributeName STEP = new AttributeName(ALL_NO_NS, SAME_LOCAL("step"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED);
1147     public static final AttributeName SHAPE_RENDERING = new AttributeName(ALL_NO_NS, SAME_LOCAL("shape-rendering"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1148     public static final AttributeName SCOPE = new AttributeName(ALL_NO_NS, SAME_LOCAL("scope"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED);
1149     public static final AttributeName SHAPE = new AttributeName(ALL_NO_NS, SAME_LOCAL("shape"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED);
1150     public static final AttributeName SLOPE = new AttributeName(ALL_NO_NS, SAME_LOCAL("slope"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1151     public static final AttributeName STOP_COLOR = new AttributeName(ALL_NO_NS, SAME_LOCAL("stop-color"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1152     public static final AttributeName STOP_OPACITY = new AttributeName(ALL_NO_NS, SAME_LOCAL("stop-opacity"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1153     public static final AttributeName TEMPLATE = new AttributeName(ALL_NO_NS, SAME_LOCAL("template"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1154     public static final AttributeName WRAP = new AttributeName(ALL_NO_NS, SAME_LOCAL("wrap"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1155     public static final AttributeName ABBR = new AttributeName(ALL_NO_NS, SAME_LOCAL("abbr"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1156     public static final AttributeName ATTRIBUTENAME = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("attributename", "attributeName"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1157     public static final AttributeName ATTRIBUTETYPE = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("attributetype", "attributeType"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1158     public static final AttributeName CHAR = new AttributeName(ALL_NO_NS, SAME_LOCAL("char"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1159     public static final AttributeName COORDS = new AttributeName(ALL_NO_NS, SAME_LOCAL("coords"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1160     public static final AttributeName CHAROFF = new AttributeName(ALL_NO_NS, SAME_LOCAL("charoff"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1161     public static final AttributeName CHARSET = new AttributeName(ALL_NO_NS, SAME_LOCAL("charset"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1162     public static final AttributeName NOWRAP = new AttributeName(ALL_NO_NS, SAME_LOCAL("nowrap"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED | BOOLEAN);
1163     public static final AttributeName NOHREF = new AttributeName(ALL_NO_NS, SAME_LOCAL("nohref"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED | BOOLEAN);
1164     public static final AttributeName ONDRAG = new AttributeName(ALL_NO_NS, SAME_LOCAL("ondrag"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1165     public static final AttributeName ONDRAGENTER = new AttributeName(ALL_NO_NS, SAME_LOCAL("ondragenter"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1166     public static final AttributeName ONDRAGOVER = new AttributeName(ALL_NO_NS, SAME_LOCAL("ondragover"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1167     public static final AttributeName ONDRAGEND = new AttributeName(ALL_NO_NS, SAME_LOCAL("ondragend"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1168     public static final AttributeName ONDROP = new AttributeName(ALL_NO_NS, SAME_LOCAL("ondrop"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1169     public static final AttributeName ONDRAGDROP = new AttributeName(ALL_NO_NS, SAME_LOCAL("ondragdrop"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1170     public static final AttributeName ONERROR = new AttributeName(ALL_NO_NS, SAME_LOCAL("onerror"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1171     public static final AttributeName OPERATOR = new AttributeName(ALL_NO_NS, SAME_LOCAL("operator"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1172     public static final AttributeName OVERFLOW = new AttributeName(ALL_NO_NS, SAME_LOCAL("overflow"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1173     public static final AttributeName ONDRAGSTART = new AttributeName(ALL_NO_NS, SAME_LOCAL("ondragstart"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1174     public static final AttributeName ONDRAGLEAVE = new AttributeName(ALL_NO_NS, SAME_LOCAL("ondragleave"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1175     public static final AttributeName STARTOFFSET = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("startoffset", "startOffset"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1176     public static final AttributeName START = new AttributeName(ALL_NO_NS, SAME_LOCAL("start"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1177     public static final AttributeName AS = new AttributeName(ALL_NO_NS, SAME_LOCAL("as"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1178     public static final AttributeName AXIS = new AttributeName(ALL_NO_NS, SAME_LOCAL("axis"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1179     public static final AttributeName BIAS = new AttributeName(ALL_NO_NS, SAME_LOCAL("bias"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1180     public static final AttributeName COLSPAN = new AttributeName(ALL_NO_NS, SAME_LOCAL("colspan"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1181     public static final AttributeName CLASSID = new AttributeName(ALL_NO_NS, SAME_LOCAL("classid"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1182     public static final AttributeName CROSSORIGIN = new AttributeName(ALL_NO_NS, SAME_LOCAL("crossorigin"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1183     public static final AttributeName COLS = new AttributeName(ALL_NO_NS, SAME_LOCAL("cols"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1184     public static final AttributeName CURSOR = new AttributeName(ALL_NO_NS, SAME_LOCAL("cursor"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1185     public static final AttributeName CLOSURE = new AttributeName(ALL_NO_NS, SAME_LOCAL("closure"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1186     public static final AttributeName CLOSE = new AttributeName(ALL_NO_NS, SAME_LOCAL("close"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1187     public static final AttributeName CLASS = new AttributeName(ALL_NO_NS, SAME_LOCAL("class"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1188     public static final AttributeName IS = new AttributeName(ALL_NO_NS, SAME_LOCAL("is"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1189     public static final AttributeName KEYSYSTEM = new AttributeName(ALL_NO_NS, SAME_LOCAL("keysystem"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1190     public static final AttributeName KEYSPLINES = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("keysplines", "keySplines"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1191     public static final AttributeName LOWSRC = new AttributeName(ALL_NO_NS, SAME_LOCAL("lowsrc"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1192     public static final AttributeName MAXSIZE = new AttributeName(ALL_NO_NS, SAME_LOCAL("maxsize"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1193     public static final AttributeName MINSIZE = new AttributeName(ALL_NO_NS, SAME_LOCAL("minsize"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1194     public static final AttributeName OFFSET = new AttributeName(ALL_NO_NS, SAME_LOCAL("offset"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1195     public static final AttributeName PRESERVEALPHA = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("preservealpha", "preserveAlpha"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1196     public static final AttributeName PRESERVEASPECTRATIO = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("preserveaspectratio", "preserveAspectRatio"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1197     public static final AttributeName ROWSPAN = new AttributeName(ALL_NO_NS, SAME_LOCAL("rowspan"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1198     public static final AttributeName ROWSPACING = new AttributeName(ALL_NO_NS, SAME_LOCAL("rowspacing"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1199     public static final AttributeName ROWS = new AttributeName(ALL_NO_NS, SAME_LOCAL("rows"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1200     public static final AttributeName SRCSET = new AttributeName(ALL_NO_NS, SAME_LOCAL("srcset"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1201     public static final AttributeName SUBSCRIPTSHIFT = new AttributeName(ALL_NO_NS, SAME_LOCAL("subscriptshift"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1202     public static final AttributeName VERSION = new AttributeName(ALL_NO_NS, SAME_LOCAL("version"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1203     public static final AttributeName ALTTEXT = new AttributeName(ALL_NO_NS, SAME_LOCAL("alttext"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1204     public static final AttributeName CONTENTEDITABLE = new AttributeName(ALL_NO_NS, SAME_LOCAL("contenteditable"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1205     public static final AttributeName CONTROLS = new AttributeName(ALL_NO_NS, SAME_LOCAL("controls"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1206     public static final AttributeName CONTENT = new AttributeName(ALL_NO_NS, SAME_LOCAL("content"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1207     public static final AttributeName CONTEXTMENU = new AttributeName(ALL_NO_NS, SAME_LOCAL("contextmenu"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1208     public static final AttributeName DEPTH = new AttributeName(ALL_NO_NS, SAME_LOCAL("depth"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1209     public static final AttributeName ENCTYPE = new AttributeName(ALL_NO_NS, SAME_LOCAL("enctype"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED);
1210     public static final AttributeName FONT_STRETCH = new AttributeName(ALL_NO_NS, SAME_LOCAL("font-stretch"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1211     public static final AttributeName FILTER = new AttributeName(ALL_NO_NS, SAME_LOCAL("filter"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1212     public static final AttributeName FONTWEIGHT = new AttributeName(ALL_NO_NS, SAME_LOCAL("fontweight"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1213     public static final AttributeName FONT_WEIGHT = new AttributeName(ALL_NO_NS, SAME_LOCAL("font-weight"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1214     public static final AttributeName FONTSTYLE = new AttributeName(ALL_NO_NS, SAME_LOCAL("fontstyle"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1215     public static final AttributeName FONT_STYLE = new AttributeName(ALL_NO_NS, SAME_LOCAL("font-style"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1216     public static final AttributeName FONTFAMILY = new AttributeName(ALL_NO_NS, SAME_LOCAL("fontfamily"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1217     public static final AttributeName FONT_FAMILY = new AttributeName(ALL_NO_NS, SAME_LOCAL("font-family"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1218     public static final AttributeName FONT_VARIANT = new AttributeName(ALL_NO_NS, SAME_LOCAL("font-variant"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1219     public static final AttributeName FONT_SIZE_ADJUST = new AttributeName(ALL_NO_NS, SAME_LOCAL("font-size-adjust"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1220     public static final AttributeName FILTERUNITS = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("filterunits", "filterUnits"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1221     public static final AttributeName FONTSIZE = new AttributeName(ALL_NO_NS, SAME_LOCAL("fontsize"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1222     public static final AttributeName FONT_SIZE = new AttributeName(ALL_NO_NS, SAME_LOCAL("font-size"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1223     public static final AttributeName KEYTIMES = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("keytimes", "keyTimes"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1224     public static final AttributeName LETTER_SPACING = new AttributeName(ALL_NO_NS, SAME_LOCAL("letter-spacing"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1225     public static final AttributeName LIST = new AttributeName(ALL_NO_NS, SAME_LOCAL("list"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1226     public static final AttributeName MULTIPLE = new AttributeName(ALL_NO_NS, SAME_LOCAL("multiple"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED | BOOLEAN);
1227     public static final AttributeName RT = new AttributeName(ALL_NO_NS, SAME_LOCAL("rt"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1228     public static final AttributeName ONSTOP = new AttributeName(ALL_NO_NS, SAME_LOCAL("onstop"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1229     public static final AttributeName ONSTART = new AttributeName(ALL_NO_NS, SAME_LOCAL("onstart"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1230     public static final AttributeName POSTER = new AttributeName(ALL_NO_NS, SAME_LOCAL("poster"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1231     public static final AttributeName PATTERNTRANSFORM = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("patterntransform", "patternTransform"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1232     public static final AttributeName PATTERN = new AttributeName(ALL_NO_NS, SAME_LOCAL("pattern"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1233     public static final AttributeName PATTERNUNITS = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("patternunits", "patternUnits"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1234     public static final AttributeName PATTERNCONTENTUNITS = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("patterncontentunits", "patternContentUnits"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1235     public static final AttributeName RESTART = new AttributeName(ALL_NO_NS, SAME_LOCAL("restart"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1236     public static final AttributeName STITCHTILES = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("stitchtiles", "stitchTiles"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1237     public static final AttributeName SYSTEMLANGUAGE = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("systemlanguage", "systemLanguage"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1238     public static final AttributeName TEXT_RENDERING = new AttributeName(ALL_NO_NS, SAME_LOCAL("text-rendering"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1239     public static final AttributeName TEXT_DECORATION = new AttributeName(ALL_NO_NS, SAME_LOCAL("text-decoration"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1240     public static final AttributeName TEXT_ANCHOR = new AttributeName(ALL_NO_NS, SAME_LOCAL("text-anchor"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1241     public static final AttributeName TEXTLENGTH = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("textlength", "textLength"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1242     public static final AttributeName TEXT = new AttributeName(ALL_NO_NS, SAME_LOCAL("text"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1243     public static final AttributeName WRITING_MODE = new AttributeName(ALL_NO_NS, SAME_LOCAL("writing-mode"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1244     public static final AttributeName WIDTH = new AttributeName(ALL_NO_NS, SAME_LOCAL("width"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1245     public static final AttributeName ACCUMULATE = new AttributeName(ALL_NO_NS, SAME_LOCAL("accumulate"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1246     public static final AttributeName COLUMNSPAN = new AttributeName(ALL_NO_NS, SAME_LOCAL("columnspan"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1247     public static final AttributeName COLUMNLINES = new AttributeName(ALL_NO_NS, SAME_LOCAL("columnlines"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1248     public static final AttributeName COLUMNALIGN = new AttributeName(ALL_NO_NS, SAME_LOCAL("columnalign"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1249     public static final AttributeName COLUMNSPACING = new AttributeName(ALL_NO_NS, SAME_LOCAL("columnspacing"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1250     public static final AttributeName COLUMNWIDTH = new AttributeName(ALL_NO_NS, SAME_LOCAL("columnwidth"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1251     public static final AttributeName GROUPALIGN = new AttributeName(ALL_NO_NS, SAME_LOCAL("groupalign"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1252     public static final AttributeName INPUTMODE = new AttributeName(ALL_NO_NS, SAME_LOCAL("inputmode"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1253     public static final AttributeName ONSUBMIT = new AttributeName(ALL_NO_NS, SAME_LOCAL("onsubmit"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1254     public static final AttributeName ONCUT = new AttributeName(ALL_NO_NS, SAME_LOCAL("oncut"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1255     public static final AttributeName REQUIRED = new AttributeName(ALL_NO_NS, SAME_LOCAL("required"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED | BOOLEAN);
1256     public static final AttributeName REQUIREDFEATURES = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("requiredfeatures", "requiredFeatures"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1257     public static final AttributeName RESULT = new AttributeName(ALL_NO_NS, SAME_LOCAL("result"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1258     public static final AttributeName REQUIREDEXTENSIONS = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("requiredextensions", "requiredExtensions"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1259     public static final AttributeName VALUES = new AttributeName(ALL_NO_NS, SAME_LOCAL("values"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1260     public static final AttributeName VALUETYPE = new AttributeName(ALL_NO_NS, SAME_LOCAL("valuetype"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED);
1261     public static final AttributeName VALUE = new AttributeName(ALL_NO_NS, SAME_LOCAL("value"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1262     public static final AttributeName ELEVATION = new AttributeName(ALL_NO_NS, SAME_LOCAL("elevation"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1263     public static final AttributeName VIEWTARGET = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("viewtarget", "viewTarget"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1264     public static final AttributeName VIEWBOX = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("viewbox", "viewBox"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1265     public static final AttributeName CX = new AttributeName(ALL_NO_NS, SAME_LOCAL("cx"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1266     public static final AttributeName DX = new AttributeName(ALL_NO_NS, SAME_LOCAL("dx"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1267     public static final AttributeName FX = new AttributeName(ALL_NO_NS, SAME_LOCAL("fx"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1268     public static final AttributeName RX = new AttributeName(ALL_NO_NS, SAME_LOCAL("rx"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1269     public static final AttributeName REFX = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("refx", "refX"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1270     public static final AttributeName BY = new AttributeName(ALL_NO_NS, SAME_LOCAL("by"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1271     public static final AttributeName CY = new AttributeName(ALL_NO_NS, SAME_LOCAL("cy"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1272     public static final AttributeName DY = new AttributeName(ALL_NO_NS, SAME_LOCAL("dy"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1273     public static final AttributeName FY = new AttributeName(ALL_NO_NS, SAME_LOCAL("fy"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1274     public static final AttributeName RY = new AttributeName(ALL_NO_NS, SAME_LOCAL("ry"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1275     public static final AttributeName REFY = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("refy", "refY"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1276     private final static @NoLength AttributeName[] ATTRIBUTE_NAMES = {
1277     FILL,
1278     DATETIME,
1279     CHAROFF,
1280     CLEAR,
1281     IMAGESRCSET,
1282     COLOR,
1283     LETTER_SPACING,
1284     ARIA_DISABLED,
1285     SPECULAREXPONENT,
1286     ONKEYUP,
1287     DOMINANT_BASELINE,
1288     OPEN,
1289     SCROLLING,
1290     MAXSIZE,
1291     REQUIREDFEATURES,
1292     Y,
1293     ARIA_MULTISELECTABLE,
1294     ROTATE,
1295     ACCENTUNDER,
1296     ONREPEAT,
1297     SELECTION,
1298     LIGHTING_COLOR,
1299     BACKGROUND,
1300     FROM,
1301     XLINK_TITLE,
1302     ONCOPY,
1303     PROPERTY,
1304     START,
1305     DEPTH,
1306     TEXT_ANCHOR,
1307     RX,
1308     MIN,
1309     K3,
1310     ARIA_CHANNEL,
1311     ARIA_VALUENOW,
1312     LOCAL,
1313     ONABORT,
1314     LOADING,
1315     BASEPROFILE,
1316     INTEGRITY,
1317     ONBEGIN,
1318     REPEATCOUNT,
1319     SURFACESCALE,
1320     MARGINWIDTH,
1321     PATHLENGTH,
1322     RADIOGROUP,
1323     MASKUNITS,
1324     STYLE,
1325     ASYNC,
1326     POINTSATZ,
1327     AUTOPLAY,
1328     NOMODULE,
1329     TO,
1330     DISPLAY,
1331     STOP_OPACITY,
1332     ONDROP,
1333     CURSOR,
1334     SRCSET,
1335     FONTFAMILY,
1336     PATTERN,
1337     COLUMNALIGN,
1338     VIEWBOX,
1339     DY,
1340     END,
1341     SRC,
1342     Y1,
1343     ARIA_GRAB,
1344     ARIA_REQUIRED,
1345     ARIA_ATOMIC,
1346     ARIA_OWNS,
1347     ARIA_BUSY,
1348     EQUALCOLUMNS,
1349     ONDATAAVAILABLE,
1350     XCHANNELSELECTOR,
1351     ONSCROLL,
1352     GRADIENTTRANSFORM,
1353     SRCDOC,
1354     ACCEPT,
1355     CODETYPE,
1356     ENTERKEYHINT,
1357     MODE,
1358     OTHER,
1359     ONBEFORECOPY,
1360     REPEAT,
1361     SUPERSCRIPTSHIFT,
1362     HREF,
1363     ALIGNMENTSCOPE,
1364     LARGEOP,
1365     TARGETX,
1366     MATHCOLOR,
1367     ACTION,
1368     MEDIA,
1369     SCRIPTMINSIZE,
1370     MARKER_END,
1371     CELLSPACING,
1372     ONBLUR,
1373     FORMAT,
1374     SYMMETRIC,
1375     KERNELMATRIX,
1376     POINTER_EVENTS,
1377     TRANSFORM,
1378     XMLNS,
1379     BGCOLOR,
1380     FLOOD_COLOR,
1381     ONMOUSEOVER,
1382     ONFOCUS,
1383     STROKE_DASHOFFSET,
1384     CLIP,
1385     GLYPHREF,
1386     SCOPE,
1387     ATTRIBUTENAME,
1388     ONDRAG,
1389     OVERFLOW,
1390     COLSPAN,
1391     IS,
1392     PRESERVEASPECTRATIO,
1393     CONTENTEDITABLE,
1394     FONTWEIGHT,
1395     FILTERUNITS,
1396     ONSTOP,
1397     STITCHTILES,
1398     WIDTH,
1399     INPUTMODE,
1400     VALUETYPE,
1401     DX,
1402     BY,
1403     RY,
1404     DIR,
1405     IN2,
1406     REL,
1407     R,
1408     K1,
1409     X2,
1410     XML_SPACE,
1411     ARIA_LABELLEDBY,
1412     ARIA_SELECTED,
1413     ARIA_PRESSED,
1414     ARIA_SECRET,
1415     ARIA_TEMPLATEID,
1416     ARIA_MULTILINE,
1417     ARIA_RELEVANT,
1418     ARIA_AUTOCOMPLETE,
1419     ARIA_HASPOPUP,
1420     DEFAULT,
1421     HSPACE,
1422     MOVABLELIMITS,
1423     RSPACE,
1424     SEPARATORS,
1425     ENABLE_BACKGROUND,
1426     CHECKED,
1427     OPACITY,
1428     BORDER,
1429     HIDDEN,
1430     RENDERING_INTENT,
1431     SANDBOX,
1432     ACCESSKEY,
1433     BASEFREQUENCY,
1434     BASE,
1435     CITE,
1436     EDGEMODE,
1437     INDEX,
1438     LABEL,
1439     NORESIZE,
1440     ONSELECT,
1441     ONREADYSTATECHANGE,
1442     ORIENT,
1443     ONBEFOREPASTE,
1444     ONKEYDOWN,
1445     RULES,
1446     SELECTED,
1447     SCHEME,
1448     TYPE,
1449     ONAFTERPRINT,
1450     ALIGN,
1451     HEIGHT,
1452     LANGUAGE,
1453     LENGTHADJUST,
1454     PING,
1455     ARCHIVE,
1456     METHOD,
1457     NOSHADE,
1458     ALTIMG,
1459     ADDITIVE,
1460     DEFINITIONURL,
1461     ONFINISH,
1462     SCRIPTLEVEL,
1463     VALIGN,
1464     MARKER_MID,
1465     MARKER_START,
1466     MASKCONTENTUNITS,
1467     DECLARE,
1468     MAXLENGTH,
1469     ROWLINES,
1470     TITLE,
1471     FRAME,
1472     PROMPT,
1473     USEMAP,
1474     IN,
1475     KERNELUNITLENGTH,
1476     ONEND,
1477     POINTSATX,
1478     STANDBY,
1479     WHEN,
1480     XLINK_ARCROLE,
1481     XLINK_SHOW,
1482     AUTOFOCUS,
1483     COLOR_RENDERING,
1484     ENCODING,
1485     LQUOTE,
1486     ONMOUSEWHEEL,
1487     ONCONTEXTMENU,
1488     ONMOUSEMOVE,
1489     ONFOCUSOUT,
1490     STROKE_LINECAP,
1491     STROKE_MITERLIMIT,
1492     STROKE_OPACITY,
1493     CLIP_PATH,
1494     GLYPH_ORIENTATION_VERTICAL,
1495     KEYPOINTS,
1496     STEP,
1497     SLOPE,
1498     WRAP,
1499     CHAR,
1500     NOWRAP,
1501     ONDRAGOVER,
1502     ONERROR,
1503     ONDRAGLEAVE,
1504     AXIS,
1505     CROSSORIGIN,
1506     CLOSE,
1507     KEYSPLINES,
1508     OFFSET,
1509     ROWSPACING,
1510     VERSION,
1511     CONTENT,
1512     FONT_STRETCH,
1513     FONTSTYLE,
1514     FONT_VARIANT,
1515     FONT_SIZE,
1516     MULTIPLE,
1517     POSTER,
1518     PATTERNCONTENTUNITS,
1519     TEXT_RENDERING,
1520     TEXT,
1521     COLUMNSPAN,
1522     COLUMNWIDTH,
1523     ONCUT,
1524     REQUIREDEXTENSIONS,
1525     ELEVATION,
1526     CX,
1527     FX,
1528     REFX,
1529     CY,
1530     FY,
1531     REFY,
1532     ALT,
1533     DUR,
1534     FOR,
1535     LOW,
1536     MAX,
1537     REV,
1538     D,
1539     X,
1540     Z,
1541     X1,
1542     K2,
1543     Y2,
1544     K4,
1545     XML_LANG,
1546     ARIA_VALUEMAX,
1547     ARIA_DESCRIBEDBY,
1548     ARIA_CHECKED,
1549     ARIA_DROPEFFECT,
1550     ARIA_EXPANDED,
1551     ARIA_LEVEL,
1552     ARIA_HIDDEN,
1553     ARIA_POSINSET,
1554     ARIA_INVALID,
1555     ARIA_VALUEMIN,
1556     ARIA_CONTROLS,
1557     ARIA_READONLY,
1558     ARIA_ACTIVEDESCENDANT,
1559     ARIA_DATATYPE,
1560     ARIA_SORT,
1561     ARIA_FLOWTO,
1562     ARIA_LIVE,
1563     ARIA_SETSIZE,
1564     DISABLED,
1565     DATA,
1566     EQUALROWS,
1567     ISMAP,
1568     LSPACE,
1569     NOTATION,
1570     ONPASTE,
1571     ROWALIGN,
1572     SEPARATOR,
1573     VSPACE,
1574     YCHANNELSELECTOR,
1575     ONDBLCLICK,
1576     CALCMODE,
1577     FENCE,
1578     ONACTIVATE,
1579     SPACING,
1580     SPECULARCONSTANT,
1581     ID,
1582     GRADIENTUNITS,
1583     HEADERS,
1584     READONLY,
1585     SEED,
1586     STDDEVIATION,
1587     WORD_SPACING,
1588     ACCEPT_CHARSET,
1589     ACCENT,
1590     BEVELLED,
1591     BASELINE_SHIFT,
1592     BASELINE,
1593     CODE,
1594     CODEBASE,
1595     DEFER,
1596     DIRECTION,
1597     EDGE,
1598     FACE,
1599     INTERCEPT,
1600     LINEBREAK,
1601     LINETHICKNESS,
1602     NAME,
1603     ONBEFOREUNLOAD,
1604     OBJECT,
1605     ORDER,
1606     ONRESET,
1607     ONMESSAGE,
1608     ONBEFOREPRINT,
1609     ORIENTATION,
1610     ONSELECTSTART,
1611     ONKEYPRESS,
1612     ONBEFORECUT,
1613     ONRESIZE,
1614     REFERRERPOLICY,
1615     ROLE,
1616     REPEATDUR,
1617     SIZES,
1618     STRETCHY,
1619     SPREADMETHOD,
1620     SIZE,
1621     DIFFUSECONSTANT,
1622     HREFLANG,
1623     PROFILE,
1624     XREF,
1625     ALIGNMENT_BASELINE,
1626     DRAGGABLE,
1627     IMAGESIZES,
1628     IMAGE_RENDERING,
1629     LANG,
1630     LONGDESC,
1631     MARGINHEIGHT,
1632     ORIGIN,
1633     TARGET,
1634     TARGETY,
1635     HIGH,
1636     MATHBACKGROUND,
1637     MATHVARIANT,
1638     MATHSIZE,
1639     ONCHANGE,
1640     PATH,
1641     ACTIONTYPE,
1642     ACTIVE,
1643     BEGIN,
1644     DIVISOR,
1645     LIMITINGCONEANGLE,
1646     MANIFEST,
1647     OPTIMUM,
1648     RADIUS,
1649     SCRIPTSIZEMULTIPLIER,
1650     TABINDEX,
1651     VISIBILITY,
1652     LINK,
1653     MARKERHEIGHT,
1654     MASK,
1655     MARKERWIDTH,
1656     MARKERUNITS,
1657     AMPLITUDE,
1658     CELLPADDING,
1659     FILL_RULE,
1660     FILL_OPACITY,
1661     ONCLICK,
1662     REPLACE,
1663     SCALE,
1664     TABLEVALUES,
1665     AZIMUTH,
1666     FRAMEBORDER,
1667     FRAMESPACING,
1668     FORM,
1669     PRIMITIVEUNITS,
1670     SUMMARY,
1671     ZOOMANDPAN,
1672     ALINK,
1673     ICON,
1674     KERNING,
1675     ONUNLOAD,
1676     ONINVALID,
1677     ONINPUT,
1678     POINTS,
1679     POINTSATY,
1680     SPAN,
1681     TRANSFORM_ORIGIN,
1682     VLINK,
1683     XLINK_HREF,
1684     XLINK_ROLE,
1685     XMLNS_XLINK,
1686     XLINK_TYPE,
1687     XLINK_ACTUATE,
1688     AUTOCOMPLETE,
1689     AUTOCAPITALIZE,
1690     COLOR_PROFILE,
1691     COLOR_INTERPOLATION,
1692     COLOR_INTERPOLATION_FILTERS,
1693     EXPONENT,
1694     FLOOD_OPACITY,
1695     NUMOCTAVES,
1696     ONLOAD,
1697     ONMOUSEENTER,
1698     ONFOCUSIN,
1699     ONZOOM,
1700     ONMOUSELEAVE,
1701     ONMOUSEUP,
1702     ONMOUSEOUT,
1703     ONMOUSEDOWN,
1704     RQUOTE,
1705     STROKE_DASHARRAY,
1706     STROKE_LINEJOIN,
1707     STROKE,
1708     STROKE_WIDTH,
1709     COMPACT,
1710     CLIP_RULE,
1711     CLIPPATHUNITS,
1712     DISPLAYSTYLE,
1713     GLYPH_ORIENTATION_HORIZONTAL,
1714     HTTP_EQUIV,
1715     LOOP,
1716     SCOPED,
1717     SHAPE_RENDERING,
1718     SHAPE,
1719     STOP_COLOR,
1720     TEMPLATE,
1721     ABBR,
1722     ATTRIBUTETYPE,
1723     COORDS,
1724     CHARSET,
1725     NOHREF,
1726     ONDRAGENTER,
1727     ONDRAGEND,
1728     ONDRAGDROP,
1729     OPERATOR,
1730     ONDRAGSTART,
1731     STARTOFFSET,
1732     AS,
1733     BIAS,
1734     CLASSID,
1735     COLS,
1736     CLOSURE,
1737     CLASS,
1738     KEYSYSTEM,
1739     LOWSRC,
1740     MINSIZE,
1741     PRESERVEALPHA,
1742     ROWSPAN,
1743     ROWS,
1744     SUBSCRIPTSHIFT,
1745     ALTTEXT,
1746     CONTROLS,
1747     CONTEXTMENU,
1748     ENCTYPE,
1749     FILTER,
1750     FONT_WEIGHT,
1751     FONT_STYLE,
1752     FONT_FAMILY,
1753     FONT_SIZE_ADJUST,
1754     FONTSIZE,
1755     KEYTIMES,
1756     LIST,
1757     RT,
1758     ONSTART,
1759     PATTERNTRANSFORM,
1760     PATTERNUNITS,
1761     RESTART,
1762     SYSTEMLANGUAGE,
1763     TEXT_DECORATION,
1764     TEXTLENGTH,
1765     WRITING_MODE,
1766     ACCUMULATE,
1767     COLUMNLINES,
1768     COLUMNSPACING,
1769     GROUPALIGN,
1770     ONSUBMIT,
1771     REQUIRED,
1772     RESULT,
1773     VALUES,
1774     VALUE,
1775     VIEWTARGET,
1776     };
1777     private final static int[] ATTRIBUTE_HASHES = {
1778     1867462756,
1779     1748971848,
1780     1966442279,
1781     1681174213,
1782     1785053243,
1783     1916286197,
1784     2004846654,
1785     1680165421,
1786     1723336432,
1787     1754899031,
1788     1816104145,
1789     1905628916,
1790     1924629705,
1791     1988784439,
1792     2024647008,
1793     71827457,
1794     1680282148,
1795     1689324870,
1796     1747295467,
1797     1754579720,
1798     1756889417,
1799     1803561214,
1800     1848600826,
1801     1884295780,
1802     1910441627,
1803     1922607670,
1804     1939976792,
1805     1975062341,
1806     2000752725,
1807     2009079867,
1808     2073034754,
1809     57205395,
1810     911736834,
1811     1680181996,
1812     1680368221,
1813     1685882101,
1814     1704526375,
1815     1736416327,
1816     1747906667,
1817     1751755561,
1818     1754698327,
1819     1756360955,
1820     1773606972,
1821     1787365531,
1822     1805715690,
1823     1823574314,
1824     1854497001,
1825     1874270021,
1826     1898415413,
1827     1906423097,
1828     1915025672,
1829     1921977416,
1830     1923088386,
1831     1933369607,
1832     1941550652,
1833     1972904518,
1834     1983398182,
1835     1991625270,
1836     2001710298,
1837     2007021895,
1838     2016810187,
1839     2060474743,
1840     2082471938,
1841     53006051,
1842     60345635,
1843     885522434,
1844     1680095865,
1845     1680165533,
1846     1680229115,
1847     1680343801,
1848     1680437801,
1849     1682440540,
1850     1687620127,
1851     1692408896,
1852     1721189160,
1853     1733874289,
1854     1740096054,
1855     1747479606,
1856     1748503880,
1857     1749549708,
1858     1753550036,
1859     1754644293,
1860     1754835516,
1861     1756147974,
1862     1756762256,
1863     1767725700,
1864     1781007934,
1865     1786775671,
1866     1791068279,
1867     1804081401,
1868     1814560070,
1869     1820727381,
1870     1824159037,
1871     1854366938,
1872     1865910331,
1873     1872343590,
1874     1884079398,
1875     1890996553,
1876     1903612236,
1877     1906408542,
1878     1908462185,
1879     1910503637,
1880     1915757815,
1881     1917857531,
1882     1922413307,
1883     1922677495,
1884     1924517489,
1885     1932959284,
1886     1934970504,
1887     1941435445,
1888     1965512429,
1889     1972656710,
1890     1972922984,
1891     1983157559,
1892     1984430082,
1893     1990107683,
1894     2000096287,
1895     2001634458,
1896     2001826027,
1897     2006459190,
1898     2008401563,
1899     2010716309,
1900     2019887833,
1901     2026893641,
1902     2065694722,
1903     2081423362,
1904     2089811970,
1905     52488851,
1906     55077603,
1907     59825747,
1908     68157441,
1909     878182402,
1910     901775362,
1911     1037879561,
1912     1680159327,
1913     1680165437,
1914     1680165692,
1915     1680198203,
1916     1680231247,
1917     1680315086,
1918     1680345965,
1919     1680413393,
1920     1680452349,
1921     1681879063,
1922     1683805446,
1923     1686731997,
1924     1689048326,
1925     1689839946,
1926     1699185409,
1927     1714763319,
1928     1721347639,
1929     1731048742,
1930     1734182982,
1931     1739583824,
1932     1740130375,
1933     1747309881,
1934     1747800157,
1935     1748021284,
1936     1748566068,
1937     1749350104,
1938     1751507685,
1939     1753049109,
1940     1754434872,
1941     1754612424,
1942     1754647074,
1943     1754794646,
1944     1754860061,
1945     1754927689,
1946     1756219733,
1947     1756704824,
1948     1756836998,
1949     1757421892,
1950     1771569964,
1951     1780879045,
1952     1784574102,
1953     1786622296,
1954     1786851500,
1955     1788842244,
1956     1797886599,
1957     1804054854,
1958     1804405895,
1959     1814517574,
1960     1814656840,
1961     1816178925,
1962     1821958888,
1963     1823829083,
1964     1825437894,
1965     1854285018,
1966     1854466380,
1967     1854497008,
1968     1866496199,
1969     1871251689,
1970     1873656984,
1971     1874788501,
1972     1884246821,
1973     1889569526,
1974     1891937366,
1975     1900544002,
1976     1903759600,
1977     1905754853,
1978     1906419001,
1979     1907701479,
1980     1909819252,
1981     1910441773,
1982     1910527802,
1983     1915341049,
1984     1916247343,
1985     1917295176,
1986     1921061206,
1987     1922400908,
1988     1922566877,
1989     1922665179,
1990     1922679610,
1991     1924443742,
1992     1924583073,
1993     1924773438,
1994     1933123337,
1995     1934917290,
1996     1937336473,
1997     1941286708,
1998     1941440197,
1999     1943317364,
2000     1966384692,
2001     1972151670,
2002     1972744954,
2003     1972908839,
2004     1972996699,
2005     1982254612,
2006     1983290011,
2007     1983432389,
2008     1987422362,
2009     1989522022,
2010     1991220282,
2011     1993343287,
2012     2000160071,
2013     2001527900,
2014     2001669449,
2015     2001732764,
2016     2001898809,
2017     2005342360,
2018     2006824246,
2019     2007064819,
2020     2009041198,
2021     2009231684,
2022     2016711994,
2023     2017010843,
2024     2023342821,
2025     2024794274,
2026     2034765641,
2027     2065170434,
2028     2066743298,
2029     2075005220,
2030     2081947650,
2031     2083520514,
2032     2091784484,
2033     50917059,
2034     52489043,
2035     53537523,
2036     56685811,
2037     57210387,
2038     59830867,
2039     60817409,
2040     71303169,
2041     72351745,
2042     884998146,
2043     894959618,
2044     902299650,
2045     928514050,
2046     1038063816,
2047     1680140893,
2048     1680159328,
2049     1680165436,
2050     1680165487,
2051     1680165613,
2052     1680181850,
2053     1680185931,
2054     1680198381,
2055     1680230940,
2056     1680251485,
2057     1680311085,
2058     1680323325,
2059     1680345685,
2060     1680347981,
2061     1680411449,
2062     1680433915,
2063     1680446153,
2064     1680511804,
2065     1681733672,
2066     1681969220,
2067     1682587945,
2068     1684319541,
2069     1685902598,
2070     1687164232,
2071     1687751191,
2072     1689130184,
2073     1689788441,
2074     1691145478,
2075     1692933184,
2076     1704262346,
2077     1714745560,
2078     1716303957,
2079     1721305962,
2080     1723309623,
2081     1723336528,
2082     1732771842,
2083     1733919469,
2084     1734404167,
2085     1739561208,
2086     1739927860,
2087     1740119884,
2088     1742183484,
2089     1747299630,
2090     1747446838,
2091     1747792072,
2092     1747839118,
2093     1747939528,
2094     1748306996,
2095     1748552744,
2096     1748869205,
2097     1749027145,
2098     1749399124,
2099     1749856356,
2100     1751679545,
2101     1752985897,
2102     1753297133,
2103     1754214628,
2104     1754546894,
2105     1754606246,
2106     1754643237,
2107     1754645079,
2108     1754647353,
2109     1754792749,
2110     1754798923,
2111     1754858317,
2112     1754872618,
2113     1754907227,
2114     1754958648,
2115     1756190926,
2116     1756302628,
2117     1756471625,
2118     1756737685,
2119     1756804936,
2120     1756874572,
2121     1757053236,
2122     1765800271,
2123     1767875272,
2124     1772032615,
2125     1776114564,
2126     1780975314,
2127     1782518297,
2128     1785051290,
2129     1785174319,
2130     1786740932,
2131     1786821704,
2132     1787193500,
2133     1788254870,
2134     1790814502,
2135     1791070327,
2136     1801312388,
2137     1804036350,
2138     1804069019,
2139     1804235064,
2140     1804978712,
2141     1805715716,
2142     1814558026,
2143     1814656326,
2144     1814986837,
2145     1816144023,
2146     1820262641,
2147     1820928104,
2148     1822002839,
2149     1823580230,
2150     1823841492,
2151     1824377064,
2152     1825677514,
2153     1853862084,
2154     1854302364,
2155     1854464212,
2156     1854474395,
2157     1854497003,
2158     1864698185,
2159     1865910347,
2160     1867448617,
2161     1867620412,
2162     1872034503,
2163     1873590471,
2164     1874261045,
2165     1874698443,
2166     1881750231,
2167     1884142379,
2168     1884267068,
2169     1884343396,
2170     1889633006,
2171     1891186903,
2172     1894552650,
2173     1898428101,
2174     1902640276,
2175     1903659239,
2176     1905541832,
2177     1905672729,
2178     1905902311,
2179     1906408598,
2180     1906421049,
2181     1907660596,
2182     1908316832,
2183     1909438149,
2184     1910328970,
2185     1910441770,
2186     1910487243,
2187     1910507338,
2188     1910572893,
2189     1915295948,
2190     1915394254,
2191     1916210285,
2192     1916278099,
2193     1916337499,
2194     1917327080,
2195     1917953597,
2196     1921894426,
2197     1922319046,
2198     1922413292,
2199     1922470745,
2200     1922567078,
2201     1922665052,
2202     1922671417,
2203     1922679386,
2204     1922699851,
2205     1924206934,
2206     1924462384,
2207     1924570799,
2208     1924585254,
2209     1924738716,
2210     1932870919,
2211     1932986153,
2212     1933145837,
2213     1933508940,
2214     1934917372,
2215     1935597338,
2216     1937777860,
2217     1941253366,
2218     1941409583,
2219     1941438085,
2220     1941454586,
2221     1942026440,
2222     1965349396,
2223     1965561677,
2224     1966439670,
2225     1966454567,
2226     1972196486,
2227     1972744939,
2228     1972863609,
2229     1972904522,
2230     1972909592,
2231     1972962123,
2232     1974849131,
2233     1980235778,
2234     1982640164,
2235     1983266615,
2236     1983347764,
2237     1983416119,
2238     1983461061,
2239     1987410233,
2240     1988132214,
2241     1988788535,
2242     1990062797,
2243     1991021879,
2244     1991392548,
2245     1991643278,
2246     1999273799,
2247     2000125224,
2248     2000162011,
2249     2001210183,
2250     2001578182,
2251     2001634459,
2252     2001669450,
2253     2001710299,
2254     2001814704,
2255     2001898808,
2256     2004199576,
2257     2004957380,
2258     2005925890,
2259     2006516551,
2260     2007019632,
2261     2007064812,
2262     2008084807,
2263     2008408414,
2264     2009071951,
2265     2009141482,
2266     2010452700,
2267     2015950026,
2268     2016787611,
2269     2016910397,
2270     2018908874,
2271     2023146024,
2272     2024616088,
2273     2024763702,
2274     2026741958,
2275     2026975253,
2276     2060302634,
2277     };
2278 }
2279